Mapping combined ways for cycling and walking

highway=footway implies foot=designated. If there is also permissive, by rule or by sign, you can add foot=permissive or customer, because that is the more restrictive access restriction. It would still be a footway designated to walkers, just with an extra restriction.

You don’t tag the rule, you tag the effect of the rule. If it’s a footway, tag highway=footway, which implies foot=designated. If it’s permissive, because of a signe or a rule, add access=permissive. If there is no path at all, just freedom to go anywhere you like, there is no path to tag, and you might leave it at that or find another object to attach this tag to: a zone, an area. But, from what I have seen, the PROW rule says something like “you have a right to cross private land, but you have to use the provisions made for that” which are paths and gates, and no unnecessary swerving! So you don’t just climb over any stone wall, fence or hedge. Correct?
The long ongoing public footpaths are routes I think, consisting of permissive footways and walkable sections of other ways. Route relation tagged as route=foot. I don’t know a specific tag to indicate the designation of the string of ways as an official public footpath, but you always have from=, to=, via=, description=.

I think this way the effects of the typical English PROW rules are translated into OSM-wide understood tags. Maybe some aspects are still not captured - but not everything needs to be captured, unless it seriously misses the effects they have on the ways people travel, and on the rendering and routing of the ways.
Nederland has such rules where it comes to different kind of signed cycleway (mandatory cycleways, mandatory cycleandmoped-ways, non-mandatory cycleways) and there are no definihg classification tags for that. So we just tag the impact of the signs on access for regular bicycles, mofa’s, mopeds, and electric mofa’s (designated, yes, or no) where applicable, and forget the mandatory aspect because there just isn’t a generally understood tag for that. But we can and do tag any alternatives as *=no or *=use_sidepath.