Just FYI, it looks like you can export/save bmml from the new format now but it does require additional steps and means that out of the box tools can’t immediately interoperate with working files. I like your solution best of all and agree that having a public/private format seems ideal in some ways — best of both worlds.
For the ultimate in flexibility, having the application also ‘watch’ the bmml files for any changes would be great so that it could provide two-way changes. e.g. if my bmml files were updated from an external source (GIT, plugin, manual edit) those changes would show up in the binary structure as well, possibly just as a new version of the file… to take advantage of the built-in version support.