Největší nevýhodu duck typingu vidím v tom, že chyby vyplývající z použití nevhodného objektu se kolikrát mohou objevit hodne hluboko v interní kódu, aniž by na první pohled bylo zřejmé, jak je to možné. Označit objekt rozhraním přeci jen lépe označuje očekávané chování, než abych musel ke každé funkci na vnějším API psát do dokumentace, které operace má kachna umět, případně to na první úrovni složitě testovat, aby případná polokachna nepropadla až někam dovnitř, kde způsobí katastrofu.