I unsure there's really any best practice for QoS. Logically, Cisco has their 12 class model, but that, alone, doesn't really define all the parameters for various QoS configuration settings (although Cisco does have guides that suggest how to implement their 12 class model on different platforms).
The RFC model is a little different, and it, along with RFC DCSP markings is really just suggestions.
Physically, switches, as they tie QoS to their hardware, often differ much is their capabilities, which can make it difficult to have the same logical model implemented across different switch platforms. For example, on the 6500 platform, with sup720s, certain QoS features can bump up against hardware limitations if you have many ports on the chassis. So for those, you can be "forced" to use VLAN based QoS, even if you preferred to use port based QoS.
So, perhaps, "best practice" is what makes the most effective QoS to support your needs on your platforms.