Foreign key slouží k tomu, aby nedošlo k narušení konzistence v DB. Naopak bez použití foreign key můžeš nekonzistenci v DB jednoduše vytvořit smazáním záznamu v tabulce A nebo B. Použití foreign key by tomu zabránilo.
Ale osobně bych byl opatrný s Cascade Delete apod. pokud to nemá opravdu význam. V normální praxi to nepotřebuješ. Pokud se máš nastaven foreign key a pokusíš se smazat záznam v tabulce A, který je použit, skončí to chybou. S CASCADE delete se automaticky smažou i záznamy v tabulce C, které na daný záznam odkazují. Tohle může být nebezpečné, protože smazáním záznamu v tabulce A smažeš třeba polovinu obsahu tabulky C.
Koukám, že tvůj šéf je opravdu odborník na svém místě, zvlášť s tím ukládáním dat, které se používají pro vazby do blobu.