It could be done but you'd have to be really determined to create a Roku browser that supported html. For starters, you'd need to create a roKeyboardScreen so that users could enter the url they want to load. You would then need to download the page to temporary storage.
url = keyboard.GetText()
ba = CreateObject("roByteArray")
ba.FromAsciiString(url)
digest = CreateObject("roEVPDigest")
digest.Setup("sha1")
digest.Update(ba)
filename = digest.Final()
path = "tmp:/" + filename + ".xml"
http = CreateObject("roUrlTransfer")
http.SetUrl(url)
success = http.AsyncGetToFile(path)
Plain text pages could easily be rendered using a roImageCanvas screen. XML feeds like rss, atom, mrss could easily be rendered using a combination of Roku components/screens. It's only when you start trying to render html that you're going to run into problems. The only way to display a html page while preserving all of the formatting on a Roku screen would be to take a screenshot of the page from your server and then return the screenshot url. The image could then be displayed using roImageCanvas. You might be able to use the browsershots code to accomplish this but like I mentioned above, you'd have to be really determined and invest a ton of time into this to make it work.
http://code.google.com/p/browsershots/source/checkoutRegarding the wireless keyboard/mouse, you can create your own wireless keyboard using the external control protocol. You could develop a keyboard application that issued commands to your Roku box which would enable any wi-fi enabled laptop to become a wireless Roku keyboard.
echo -e 'POST /keypress/Home HTTP/1.1\r\n\r\n' | ncat 192.168.x.x 8060