You claim that this is a social problem, and I claim that the solution to the social problem is to have a well-defined process.
Even if the canonical configuration is under version control, that still does not prevent anyone from making out-of-process changes.
Let me clarify: the social problem is that everyone is whining about how they are forced to know that config.sqlite exists. They even need to remember this while writing their "run_my_webapp.sh" script.
I'm proposing a command line option which hides the `m2sh load -config examples/config/sample.conf` step from the user, and stores the config.sqlite file somewhere other than the working directory.
The sole goal is to make people STFU about the config format.
I admit that right now it does seem to be the de facto standard but that's at least partly because the m2 community is small enough that Zed is still important in it so the tools he ships are the tools people use. In the event that m2 takes over the world though an -m2sh (or similar) option is going to be criticized as obsolete bloat that no one needs because every one uses the M2ConfigDeploy.py library.
Think of the sqlite database as a "deployed" configuration, not the configuration that you work with. Put together some process documentation for deployment procedures, you'll need it anyway.
The list of objections your boss might raise were all straw men except for this one: http://news.ycombinator.com/item?id=1777093
(I added a disclaimer to the post clarifying that I'm not endorsing any of these objections.)
As for a scary hexadecimal filename, that's an implementation detail. The raw text sqlite dump is the actual configuration, the /tmp/whatever.sqlite file is deleted when mongrel2 exits. No user need know it exists.