Well, for starters, generally totally ignore L2 CoS. Just use L3 ToS.
For the latter, "the book" says, you should "validate" any traffic entering your QoS trust boundary, which often includes access ports.
Years ago, we implemented a policy, rather than validate traffic has a proper marking EF, we just policed it, at edge ports, to allow expected VoIP data rates. I.e. if someone wanted to send FTP marked with EF, that was okay, but they only would obtain 100 Kbps, not the port's gig.