Why do you say the OSI model is unrealistic? Writing the simplest Hello World web service call takes advantage of the OSI model, even though you might not notice it unless you also write network drivers and manufacture network cards. In fact, I've worked at companies where it would be accidentally accurate if you simply labelled the dev teams with the layer of the OSI model their work corresponds with. You practically can't read a network sniffer trace unless you understand the OSI reference model.
The layers do not reflect reality. The higher up you go, the less obvious the mapping to the things that really exist gets, and the mapping is getting fuzzier over time (or, phrased another way, the OSI model is not only unrealistic, but increasingly unrealistic).
This is as opposed to possible meanings of the phrase, like "impractical". It is probably theoretically possible to write something that really would have seven clear layers, though I have to hedge; a lot of really high-performance stuff is even fuzzier than the consumer stuff. The recent trend towards userland-level networking at the highest performance end pretty much collapses layer 3 and above into one application. But it would at least ship bytes from here to there, it's certainly not an impossible design. It just isn't the real one. (And I'd have grave concerns about its performance at the top end.)
I have to admit this is another trend in programming that I just Do Not Get. This bizarre insistence on taking some inappropriate model, then with malice aforethought deliberately squinting at things that manifestly do not fit into the model until your vision is so fuzzy that they do seem to fit together, then yelling at anyone who dares point out you've damn near closed your eyes and probably aren't seeing clearly. See also every web framework's desperate need to insist that they are MVC, even as the lines that must be drawn between the various components to show where the M, V, and C are wildly and drunkenly veer hither and yon in a terrifically convoluted manner, criss-crossing dozens of components, instead of simply explaining what they actually are. I just don't get it. Models aren't blueprints, let alone the very definition of virtue. If they don't work, dispose of them.
> You practically can't read a network sniffer trace unless you understand the OSI reference model
I read these all the time. I can't remember the last time I needed to know what the OSI layers were called; they're utterly irrelevant to networking as near as I can tell.
You don't need the OSI model to understand layers of abstraction. Since the OSI model doesn't fit the observed layers very well, it seems pretty useless from that perspective.