I’m wondering why Virtualmin writes apache virtualhost definitions in httpd.conf? For readability the httpd-vhost.conf was introduced in 2.2. I’m not saying Foo is better than Bar but it’s always good to have a choice. I think I’m not the only one who would like to see configuration option to set path and file where apache virtualhost definitions should be stored.
I believe the way they have it setup is that on Ubuntu and Debian, it uses the sites-enabled/sites-available directories, and uses separate files like you mentioned.
On RHEL/CentOS, it uses the httpd.conf file.
Those are all configurable though – if you go into Webmin -> Servers -> Apache Website, click Module Configuration, you can set a directory to store files in by setting "File or directory to add virtual servers to".