So true.
It's really ugly and non intuitive.
In researching how to pass complex object through an Intent, I had other 2 alternatives:
* extend Serializable instead
* transfer a JSON representation of the class's member variables using GSON: http://code.google.com/p/google-gson/

I am inclined to leave it as is for now. 
Later I can write some unit tests around the transmission of the data through the intent and modify the implementation with one of the 2 options.