There are a number of reason to continue to separate the application and database layers.
1) You may have security requirements that would dictate separation.
2) Troubleshooting would be enhanced by segmentation. Tracking down an issue could be made easier as VM type performance counters wouldn't be mixing the app/ database roles into one VM.
3) Performance might be negatively impacted by consolidating the VMs.
Essentially if the software vendor recommends separating the roles, then it doesn't matter if it is physical or virtual.