The Roku rates pretty low in terms of scriptability/hackabilty IMHO. Yes, it has an API, but through numerous poor choices on Roku's part, this is not as useful as other platforms. Their Brightscript is not well designed, and the VM is buggy. I can cause the device to hard reset with one line of code (an accidental discovery trying to make the thing work). The library availability for the language is poor. Heaven help you if you want to do something that's provided in libraries on the net in nearly every language but not available on Brightscript. If you want to do something very very simple, you can pull it off, but more complicated programs are an exercise in frustration. Additionally, their provided displays are missing key functionality. For example, the Grid Display cannot be stacked without crashing the device, you cannot set the selection on it before it is displayed, and there is no callback for the display of the grid so you can set the selection then. Also, use the debugger too much, and you'll lock up the device, requiring pulling the power to correct it. Lastly, you cannot have more than one development app on the device at a time.
I went to a GoogleTV, and it's hackability is vastly superior to the Roku. It uses a language which has a large library availability (java) and the programming environment is inside an IDE (Eclipse). The remote debugger is more useful, synchronizing the execution with the location in the code and displaying local variables, in stark contrast to using telnet on a port to step through which is essentially a stripped down command line gdb (which is missing many of the more useful commands, such as breakpoints).
I cannot speak for the other devices, but if they were to provide any API for third party development, I would be surprised if they were not superior to the Roku. It has a development environment you would expect from the previous decade, not this one.
> later when they upgraded the OS (without breaking any compatibility)
This caused me to laugh. I have a Roku 2 and experienced a regression on http live streaming resulting in audio dropouts, video freezing, and even the device rebooting. My dad has a Roku 1, and experienced regressions on two separate "updates." This is not isolated; just see the forums and the number of requests to revert the firmware and Roku's refusal to allow it.