* Why do you use a DynamicMetaData with threadlocal=False?

Because this way, people using a single database (ie engine) *per metadata
object* can skip connecting the metadata object(s) to their engine(s) in each 
thread. We felt this was the most common case and provided the sanest default
behavior.

Now if you use several databases (ie. you use several different engines), 
you have the same tables in all your databases (ie. you want 
to use the same metadata object for several of those databases) AND work in a
multi-threaded environment, you may not use the default metadata object 
provided by Elixir. You can still do want by simply creating another metadata
object the way you like (probably a plain DynamicMetaData) and use that
metadata for all your entities.

