As far as I remember the lower speed limit for residential and service are attempts to reduce the number of artefacts where the route leaves
highway=primary in favour of a
highway=service for just a short segment because of higher priority.
highway=path one needs to be extremely cautious with a racing bike, especially as I’m assuming that you do not have any bell. So I believe it is not unrealistic to estimate a slower speed compared to an ordinary bike, also because usually a path without more information probably goes along with a bad surface for a race bike. By the way, a simple
highway=path results in PUSHING_SECTION_SPEED in the test for both bike and raceingbike, despite the speed set with setHighwaySpeed.
highway=track I intentionally used the lowest possible speed, as it is usually tagged together with a tracktype and if not we assume the worst condition for a race bike you can imagine. It is simply no fun riding there if you don’t have any information about the surface/tracktype. But for
tracktype=grade1 we do use 20 km/h.
Summing up from my point of view up the inconsistency is only an issue for
highway=service case. Maybe this can be solved when having issue 2333 by preferring
highway=residential one step less as compared to what we currently do and by reducing the speed for
highway=service to 16 for the bike profile.