Pokud mám srovnat UCS4 (často tu hovoříme o UTF-32, ale vnitřně v programech se to stejně realizuje jako pole 32bitových hodnot) a UTF-16, pak je UCS4 obrovská výhra.
Manipulace s UTF-8 a UTF-16 je komplikovaná a složitá, a v zásadě stejně se převádí při všech algoritmech vnitřně na 32bitový znak. To se nedá popřít.
Jinak Vaší filozofií (nic proti ní, nekritizuji) je šetřit každým bajtíkem i za cenu, že nad tím strávíte tisíc hodin práce navíc. Nicméně úspora, kterou uděláte ve velikosti paměti při zavedení UTF-8, nebo UTF-16 namísto UCS4 je zanedbatelná, zato poměrně dosti zvednete zátěž cpu. V běžném PHP skriptu určitě neušetříte více, než pár desítek kilobajtů tím, že nahradíte UCS4 něčím méně rozumným. S tím, že podstatně znásobíte počet problémů.
Normalizace není potřeba zvažovat, pokud se bavíme o ukládání řetězců. Navíc jste taktně nezmínil, že jak UTF-8, tak UTF-16, tak UCS4 musí řešit všechny normalizaci. Protože normalizace není a nikterak nesouvisí s kódováním Unicode, ale je vlastností Unicode samotného. Tudíž při rozhodování ohledně UCS4, nebo UTF-8, nebo UTF-16, je to off topic téma. Normalizaci budete řešit vždy, když použijete Unicode, a to bez ohledu na použité kódování.
Pokud je Vaší prioritou ušetřit několi desítek KB za každou cenu, pak máte pravdu. Ale obávám se, že nevýhody by silně převážily. Máte pravdu, záleží na kritériu, které si dáme. UTF-8 a UTF-16 je úspornější (o ty desítky, max. stovky KB v běžném skriptu), než UCS4, zato přináší takové problémy, že o ně tvůrci programů obvykle nestojí. Zejména UTF-16 je silně znouze ctnost.
V UTF-8 zase česká abeceda vychází kratší, ale třeba asijský text mnohdy značně delší, než v UCS4. Vyberte si.

