I can kind of understand the changes but why not just make a mesh with a single root bone from the get-go and export that using the 'standard' script? I'm assuming the 'fake' bone is written into the file, so you're still actually exporting a rigged mesh (albeit very simple rig)?. Is there a particular reason for the changes (other than using a single format for both static and animated models)? Will take a look nontheless 
If your making a static model, you NEED to have a bone. Thats part of the md5mesh format. Your already using a single format for static and animated meshes.
For users who don't care about bones and animation, its extra effort to work out how to add the bone, and bind the mesh to it - especially when unfamiliar with blender. The thing that makes it really annoying, is that this bone isn't special - it needs no extra information to add (you don't need to know what coordinates to put it at, {0,0,0} is fine). Theres no reason to make the user do this manually when the script can take care of it.
This makes it easier to use for users that don't know blender. Usability is very important.
When I say 'fake' bone ('dummy' if you prefer), this bone is never at any point part of the blender model. The mesh your exporting always has no armature. Its not needed, the script will deal with it. This is why it is simpler for users to do the export.
Model with no armature goes into the md5 export script.
Script then checks theres no armature, adds a 'fake' or 'dummy' bone to the data to be exported and points vertices to that bone.
The md5 export script does an export at usual, which will include the 'fake' bone, and exporting the mesh.