Obligatory admonishment: It's important to be cautious about editing to get a certain result from a specific data consumer's product. That said, I suspect most of them do make those default assumptions about "highway=path" when they have to... it's just better if they have more specific information to work with. Historically there was a lot of debate due to all the different things any given person thinks is or isn't implied by "path" (e.g. https://github.com/gravitystorm/openstreetmap-carto/issues/1698#issuecomment-134905532), so the less ambiguity, the more useful the data. In particular, "surface" is pretty hard to make valid assumptions about outside of extreme urban or rural areas... I mean, just look at the spectrum of what passes for a sidewalk around here! :D

Anyway, it's perfectly common to encounter "highway=footpath" with a "bicycle=yes" tag, so if a product isn't handling that case correctly, it's something they need to fix on their end... here's a random example if you want to check: https://www.openstreetmap.org/way/734114198

For places where you're not really supposed to ride a bike, but which might still reasonably be part of a bike route (narrow pedestrian bridges, etc) there's the "bicycle=dismount" tag, as used here: https://www.openstreetmap.org/way/222837353

Incidentally, the recent legalization of sidewalk riding was for unincorporated L.A. County, but it was already generally legal in City of L.A. (and other cities in the county all have their own laws about it - quite a can of worms: https://ehlinelaw.com/blog/bicycles-and-sidewalks).

Also incidentally, if you haven't yet, take a look at Achavi, it's a neat (but probably not mobile-friendly) way to get a visual overview of a given changeset's edits, you can hover over the features to see a diff of the tags: https://nrenner.github.io/achavi/?changeset=145978856
