Ahem, lists and maps seem a very easy thing to do in SQL. Where you get to the limits of the relational model is when three structure diversity is out of your hands, for instance a big bunch of parametrized messages.
With MongoDB all I have to do is add Map<String,String> myMap to a Java class and that's it.
But yes, you're right that maps require a join table.
Not in postgres: http://www.postgresql.org/docs/9.1/static/hstore.html