Every abstraction leakes and that is not a problem at all. Does IP leak under HTTP? Sure it does. But it is still a good abstraction used everywhere. Also, see the quote commented in a sibling comment.
It's bizarre to me how many people seem to be averse to any form of abstraction when literally anything you build is already atop an unbelievably large tower of abstraction.
We should as an industry be teaching people how to build good abstractions, not avoiding them at all costs.
In that case, I'm with you, I'd rather see a pile of imperative code...