In November 2002 Joel Spolsky published an article called “The Law of Leaky Abstractions”. In it he describes that abstractions, as they are simplifications will always come to the point in which they fail. He defines the law of of leaky abstractions as:
All non-trivial abstractions, to some degree, are leaky.
This law applies to software development even stronger than to many other fields as most of what we build is done using and on-top abstractions, protocols and frameworks, concepts and ideas. But you will never fully flee the way of the underlying truth of what is going on. Highly recommended.