Smysl je v tom, že v celé aplikaci ví pouze model o tom, kde data skutečně jsou.
Tady mu předávám instanci DB tabulky, ale mohl bych mu předat např. Nette\Database\Context, SQLite davázi, XML soubor, nebo cokoliv jiného.
Model mi vždy vrátí pouze instanci třídy, se kterou pracuji v celé aplikaci. Nevím nic o tom, jaké jsou v DB tabulky a jaké mají mezi sebou vazby atd. - o to vše se má starat pouze model.
Kdybych použil Doctrine, musím vytvářet třídy jen proto, abych mohl použít nějakou vazební tabulku a závislot na datovém úložišti se mi prorůstá skrz aplikaci, kde ji nechci.
Chápu, že bych tak získal jednodušší přístup k vazbám mezi objekty, ale nutnost takto přizbůsobovat třídní model datovém úložišti se mi nelíbí.