PostgreSQL sleduje závislosti a velmi agresivně vyprázdní mezipaměť, když se věci změní.
Pokud funkci změníte, zruší to alespoň plány všech funkcí, které na ní závisí. V praxi IIRC pouze úplně vyprázdní všechny plány dotazů v mezipaměti.
Totéž platí o pohledech, které závisí na jiných pohledech, připravených prohlášeních odkazujících na pohledy atd.
Pokud najdete případ, kdy se to nedaří, našli jste chybu. Nahlaste to prosím pomocí úplného reprodukovatelného testovacího případu.