Ono je to vždycky něco za něco. Aktivně používám víc jazyků, včetně dynamicky typovaného Pythonu, ovšem samozřejmě v Pythonu si za dynamické typování draze zaplatíme - jak časem běhu, tak i - jak uvádíte - tím, že prostě některé potenciální chyby buď ignorujeme nebo nastanou :/
Mypy je (samozřejmě IMHO) velmi vhodné pro ty funkce a metody, které tvoří veřejné API. Tam je potom typová deklarace součástí rozhraní a pomáhá to oběma stranám - jak autorovi API, tak i jeho konzumentovi.
Ale opět - ten typový systém samozřejmě není dokonalý, a popravdě nevím o žádném, který by vždy vyhovoval a byl řešitelný v rámci statických kontrol (tedy před runtime). Stačí si představit funkci, která akceptuje seznam uživatelů, přičemž uživatel je nějaká struktura, která může mít další zanořené atributy - jak to vůbec typově dobře popsat a zkontrolovat?