There is no right or wrong. It depends, regardless of version.
A single VM with 4GB Ram and you include your DB's in the same flat file, VM lives on 2 spindles, indexing massive amounts of data, it will suck.
Put the OS/SQL on VM with massive amounts of RAM, use RDM to mount LUNS on dedicated spindles to separate DB's / Logs, high I/O ceiling by using the correct amount of spindles, Size block size to match your SAN, Size SQL for your resources, and have a well maintained maintenance plan, and it will work great.
In some cases you may trade performance for the HA or increased flexibility virtualization will provide. Configurations options, and tradeoffs are limitless, and each one has different characteristics regardless of the new "tweaks" in 2012, 2008, or Oracle, or anything else for that matter.
Note MS is making a big push to Cloud/Private Cloud, it is in there interest to sell you an "optimized" SQL for virtualization as it is part of their overall plan. You should not virtualize anything just for the sake of virtualizing it. And vice versa, you should not write it off because there are a majority of SQL horror stories on VM's, which have to do more with not sizing resources correctly than virtualization itself. Best Practices are suggestions not rules, and need to be evaluated in your environment on a case by case basis.