I'm a little confused about the advantage of your suggestion:
:[:key => 'value', :foo => 'bar']
over this:
[key:value, foo:bar] (the key:value syntax is already part of ruby 1.9)
I'd be interested in the explaination of your preference.
About the empty hash idea, the :[] syntax represents a symbol (try
this '"[]".to_sym), so it might not be such a good idea.
Then again, I am no matz :)
Dan