Leaky abstractions in software mean layers meant to simplify complex tasks still require understanding of underlying details, like needing to know onchain fees in lightning networks or optimizing SQL queries despite its declarative nature.