Thanks to all who helped. The missing link was the "ServerAlias" directive in the second vhost. It is there in the docs; I read it but I guess it did not register in mind :)
I got the impression that Apache extracts the "hostname" from the GET received from the browser and serves the site if def. found otherwise serve the default site but ... it does needs a little help with the ServerAlias directive.
Anyway, I'll summarize my experience for NameBased vhost setup. Here I am setting up different "hostnames" under the _same_ domain name. Visitors will see different DocTree depending on the hostname given in the URL. Assumption - your DNS server is set with relevant hostnames in your domain zone file:
1. The first entry is the default host - don't need any ServerAlias _unless_ you want this site to be accessed by any other "hostname" alias. 2. Subsequent vhosts defs. must have a ServerAlias directive. The alias pointing to the FQDN of the server.
NameVirtualHost 192.168.1.65:80
<VirtualHost 192.168.1.65:80>
ServerName genesis.silverarc.biz ServerAdmin root@localhost DocumentRoot /home/www/html/ ErrorLog /var/log/apache2/genesis-error_log CustomLog /var/log/apache2/genesis-access_log combined
<Directory "/home/www/html/">
Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all
</Directory>
</VirtualHost>
<VirtualHost 192.168.1.65:80>
ServerName linux-install.silverarc.biz ServerAdmin root@localhost ServerAlias linux-install genesis.silverarc.biz genesis DocumentRoot /mnt/C ErrorLog /var/log/apache2/linux-install-error_log CustomLog /var/log/apache2/linux-install-access_log combined
<Directory "/mnt/C"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory>
</VirtualHost>