The "it works" part may be true for BJTs, but I think it's a stretch for op-amps. The number of Stackexchange and Reddit threads where people are struggling to debug the quirks of these ancient chips is pretty staggering.
It's true that it's possible to create a design that relies on a particular chip's behavior (like trying to drive an output directly and assuming it can do it vs. using, heh, a 2N2222 to drive the load). But those are pretty uniformly treated as "bad design". Op-amps "should be" jellybeans.
I recall that I needed some 8-pin parts a while back to test something package-related. I looked around for the cheapest part I could find and guess what... it turned out that the 358 was the absolute lowest cost thing in the world in 8 pins. Cheaper even than dummy parts with no silicon in them.
That's how cheap they are.