As for point 1
If you 1st had domain's b.com, c.com and d.com the site b.com will showup when you enter the IP of the server.
If you later add domain a.com, than this wil become the one that will showup when the IP is used.
Apache is reading the vhost files in alphabetical order.
An easy fix if you want b.com tobe the site to showup when an IP is entered is to create a symlink in /etc/apache2/sites-enabled named @000-b.com and point it to /etc/apache2/sites-enabled/b.com.vhost
Make sure that you restart apache again when done.
Never execute code written on a Friday or a Monday.