You missed a great one for the Geeks out there: Hackers Keyboard. I use it all the time for SSHing into my systems, and it's main benefit is a full set of keys. You can use modifiers like ctrl & alt, function keys, anything. It makes such remote admin tasks possible on an Android device.
All of these keyboards suck. Ive been using GoKeyboard and the stock Android keyboard. One thing Android doesn't have which Apple has, is universal keyboard languages. I hate having to jump from English to Chinese to Korean, to Japanese using a different keyboard...
Thumb Keyboard is quite useful, but my favorite is SwiftKey3. I use it on my 10.1 inch tablet (a Toshiba Thrive, but it works on phones as well). The keys are well placed and there are lots of ways to customize the keyboard. The best thing about it is the predictive typing option. On average I have to type about 60% as much as if I had to type every word in full. That really speeds things up.
I do wish that the number keypad in the middle of the keyboard could be edged towards one side or the other. As it is it's quite a stretch to type the numbers. Also, I wish that one of the (two) spacebars could be used to put spaces in a document while the other is used to trigger the predictive spelling. As of now it's one or the other.
My choice is for Swiftkey. It offers a number row and each key allows a long press to get punctuation and symbols. It also offers cursor keys which allow you to move the insertion point to correct mistakes. It's great for entering passwords. The equivalent for iOS isn't worth bothering with though. It doesn't offer number row, long press symbols or cursor keys. Come to think of it the onscreen keyboards for iOS all appear to be dire compared with Android.