I think the best way to have your cake and eat it too is to have different classes for each race: humans are fighters, clerics, rogues, wizards or monks, but elves are bladesingers, rangers, high mages or... clerics of elven gods (each god gets their own class though.)
I am experimenting with a hybrid approach, where ancestries have "racial classes" (possibly multiple) and occupational classes are more narrowly themed-- in a system where multiclassing is default-- and nonhuman ancestries have both a small selection of favored/discounted classes and a similarly small list of classes that are penalized and/or prohibited. With a sidebar, of course, noting that removing these restrictions won't break the game, and encouraging tables not using the game's default setting to alter them to fit the setting they're playing in.
The system you're describing is implemented very well in an excellent B/X-style OSR game called Adventurer, Conqueror, King. The system I'm developing is a hybrid between the racial classes of ACKS and the Japanese TRPG Sword World, which treats all classes as matters of specific training and assumes a much cleaner (and stronger) break between trained skills and inherited/innate abilities than D&D does.

