I guess a more modern example you might run into is something like Rust’s no_std environment; which strips out the standard library of the language that doesn’t work on every device the language is designed to target (namely microcontrollers that don’t even have an operating system on them). Or like, maybe you’re writing your own operating system.
Have you tried contacting either your ISP or the router manufacturer?
I had a similar issue and my ISP mentioned that there was another setting I had to change on my bridged router. I never would have found it without calling them up.