I think the differences you find can me mostly attributed to whether the DB plan you are looking at is multi-tenanted or not. MongoLab (I'm from MongoLab) has inexpensive multi-tenant plans and dedicated plans (alpha right now). In the former servers are shared (and can thus be cheaper), in the latter you get your own VM (on EC2 or wherever). RDS gives you a VM. I have not clicked on all the links in your post but I am betting that is the main difference in price strata you see.
I agree with the other reasons posted. One more reason is one of expressiveness. When you have a "flat" simple form, it is easy to serialize as name/value pairs and send to the server in that fashion. However, when a form is more complex, with nested structure or with variable-length lists of data, it can be very difficult to come up with a serialization scheme that fits the name/value pair model. Often you end up creating your own mini language. If, however, you use a JSON object or XML node as your payload, you are free to transmit data of arbitrary complexity rather easily. So in cases where the data you want to POST/PUT is not flat, you will have much more expressive power encoding your data in JSON or XML and posting it in the request body.
The point here (in the orig article) was that in some cases you do (i.e. if all you have is a SAX parser - Obj-C iPhone SDK being singled out as an example where only a SAX parser is supplied by the SDK)
6.00 uses python now? :(. Call me old-fashioned but I think scheme should have remained. I feel I really benefited from scheme being my first programming language. Recursion is in my blood now :)