To stejné byste mohl napsat o každé technologii přidávající úroveň abstrakce. Když to používáte správně, ušetří vám to spoustu práce. Zejména pokud dlouhodobě pracujete se složitější databází a provádíte často podobné, ale ne úplně stejné dotazy. Kdybyste měl stále dokola zapisovat ty stejné joiny, tak byste se z toho zbláznil.
Ne. Problém není v abstrakci, problém je v abstrakci takového typu, že spousta jejich uživatelů nedokáže sestoupit o úroveň níž a říct, co přesně tohle udělá. Čili efektivně ztratí schopnost uvažovat nad vlastním kódem, což je ten problém.
Např. parametrizovaná fce, která zastupuje nějaký složitější dotaz, který ale má konkrétní účel a konkrétní, všem známou formu, je úplně v pohodě. To je abstrakce úplně jiného typu než když mám třeba ultramagický proxy objekt, který teprve při přístupu k atributu tahá data z DB, nikdo neví v jakém rozsahu a jak často, jakými joiny, s jakými náklady...