In my local area, we are free to roam the woods – on foot. We must not camp, we must not ride a horse, we must not ride a bike there, unless explicitly signed, that we may do so, e.g. on pathways and tracks traversing those woods.
Local community is split on this issue: May mappers map bicycle=no on paths/tracks, where they know that it holds, or may they only map that, where such is signed?
A bit this is about: What worth is in local_knowledge? Is it about knowing the law of of the land or is it about reading signs only, so having been there, not seeing a sign, can delete mapping of what is not signed?
If there is some information somewhere, such as a law on file at city hall, an information board at a trailhead, something in a park brochure, regulations posted at park headquarters, etc. I say it can be mapped.
In most cases, a data consumer won’t care about the difference between these two categories - they just want to know if you’re able to ride a bicycle on that path. If you are overly pedantic about things, it produces non-useful data sets . There are other sub-keys (*:signed comes to mind) that you can use to differentiate cases of explicit signage from other types of data provenance.
That reminds me about similar problem, fortunately extremely rare and fringe one: people claiming that you can map only signed names.
But in general I would map bicycle=no where it is illegal to cycle (and tagging it add some benefit, would not put it on waterway=river). Not only where it is signed that it is illegal to cycle. Adding also bicycle:signed=no and bicycle:source (or source:bicycle) can be also useful.
Though that gets closer to another problem: technically existing legal restrictions that are not enforced at all or extremely rarely. Should we tag them in access keys?
Verifiability is an important point in this context. If a tagged feature (e.g. bicycle=no) is not verifiable, it’s very likely that it will be removed by others - sooner or later.