Earlier quoted context omitted.
It's far from ubiquitous though. It breaks down as soon as you enter the real world. It's simultaneously too vague to be useful for talking about specifics and too inaccurate to be useful for talking about generalities.
It's absolutely ubiquitous as a model. It's taught in every CS curriculum in every university in the world. It also doesn't break down in the real world, unless you're being extremely pedantic. Many bits of software don't map cleanly to the defined layers, but we can still talk about the distinction between the network layer vs. the session layer, for example, and get value out of that discussion.
It breaks down if you're trying to do anything at all with it. There are basically two layer boundaries that are useful to talk about in the real world - between Ethernet and TCP/IP, and between TCP/IP and application protocols. The OSI model has 6 layer boundaries but a) neither of them maps cleanly to either of those two real-world buondaries b) no-one knows what the other 4 are (you can kinda-sorta say that the boundary between TCP and IP is one of them, but that isn't the distinction that the OSI says it is either). Depending who you ask you can sort of retrofit it and say that the boundary between Ethernet and TCP/IP is between OSI layer 2 and 3 or 3 and 4, and the boundary between TCP/IP and application protocols is somewhere between layers 4 and 7, which is sort of ok because no-one knows WTF layers 5 and 6 are meant to be. But you're really not getting any value from using the OSI model at that point; it's not telling you anything useful and it's actively getting in the way of understanding what's going on.
> we can still talk about the distinction between the network layer vs. the session layer, for example, and get value out of that discussion.
Like what?