Companies which do not want their work to become GPL'ed just need to make
a tiny little "wrapper" driver inside the kernel, and then implement
everything that matters in the userspace. In some (not to say many)
scenarios, this approach actually is much better and saner than
implementing everything in the kernel driver.
BTW, one thing "home Linux users" should remember is that Linux is not
strong in the home PCs as it is strong in the server market. Many
companies in that scenario do not care about openess of some driver, as
long as it works and/or you (the seller) fix it in case it breaks.
Sometimes they prefer not having the source code and buy from someone who
is more expensive, because the solution is better and more complete.
IMHO, keeping this UIO infrastructure out of the kernel fearing a "binary
takeover" would be like keeping FUSE out of the kernel fearing
"proprietary filesystems" from taking over Linux: something we should not
be afraid of.
And that's it.