bicycle=no differs from the world wide default, so does use_sidepath. This shows that tagging this exception for the primary roads is very complete, suggesting that a systematic update workflow has been applied.
Furthermore that the national default for primary roads is not to allow bicycles and to redirect bicycles to a side path. I think the country specific OSM default for primary should probably be bicycle=no. All the more reason to be explicit both ways in this case.
In such a case it makes sense to tag explicit no’s, as an exception to the world wide default, and explicit yes’s as an exception to the overwhelming national customs. Still, if the tag is missing, I would expect data users to allow cycling (or apply country specific rules, which I do not expect to happen any time soon). Routers might apply a small penalty for not having an explicit tag. but that doesn’t change the default access value.
Anyway, this was just an example. The point is, you always have to tag the exceptions (or further refinements, such as use_sidewalk to refine no) to the default explicitly. That said, there can be valid reasons to also tag the default itself explicitly.