So, the question is, why does Apache place both requests under the same Virtual Host when, on a scenario using Virtual Hosts under the NameVirtualHost paradigm it should look at the Host: to decide what Virtual Host to use.
There is an under-ocumented, less used/understood matching step for NVH where the Host is compared to the address/hostname in the <virtualhost> itself. This is what messes with your test using the IP address.