And quite often the philosophy doesn't line up with reality. The OSI layers have little relation to how networking actually works and it would be next to impossible to replace some of those layers.
TCP/IP is actually a simpler model, with the layers mashed-up differently.
Seems to have worked pretty good, so far.
I'm very much a practicum-oriented guy. Theory and academic purity are great, but it's important to ship, which is what I have been doing for thirty-plus years.
I have just found that it is important to do things like establish domains for things like layers, modules, objects, protocols, whatever, and then stick to it.
If my domain is erroneous, then I need to look at that. If not, then I need to stick with it. I tend to plan for the long game. I've written APIs and frameworks that last decades, and that requires planning for the unknown; always a challenge.