I'm afraid you won't find a solution that covers all cases. We at some point decided to not have any business / value objects and return the SQL data unparsed > parse it on the client, of course not the other way, when sending the data. This may be really controversially to the best practices, but in our case performance matters more. Also, if you are building with AIR and using local database (SQLite), whereas security is not of concern, but the speed matters, then it's one case, once it requires roles, permissions etc, that's the other case. Also, we found that we can make more efficient serialization than AMF on our own, so, not really using value objects again. However, this may be important if the traffic matters more then the development speed / maintainability.
Best. Oleg