Happily, the French OSM community don't faithfully mirror the road classification in their tagging - they choose the levels of OSM tags according to the road's perceived importance in the highway network. So a D road might be the top level (highway=trunk) or the fourth level (highway=tertiary).
That means I can rely more closely on the OSM tags, preferring the lower levels, than I can in the UK. Over here, by contrast, green-signed A roads always have highway=trunk, B roads always have highway=secondary, and so on. To take a really extreme example, that means the A14 or the A1 has the same tagging as the
A887. Using traffic data is how I'm trying to fix that, but it's a gradual process.
I'm already using cycling numbers a little - they come as part of the traffic data, and basically I tone down the penalty for really busy A roads that also have lots of cyclists. (The A431 has a fairly low number of bikes: 218 versus 22,000 vehicles.) There's a few companies trying to collect this sort of data through smartphone apps, but unfortunately they're keeping the data to themselves rather than offering it openly OSM-style - figuring that it has some resale value, I guess. Even then, I don't think anyone yet has the critical mass of data except Strava, and as you suggest their data really isn't targeted to utility cyclists - a look at the Strava heatmap for Cambridge, for example, shows high numbers on some busy arterial roads, yet low numbers on popular cycling cut-throughs like Garrett Hostel Lane.