Pues porque la propiedad de almacenamiento de datos de este componente no es text sino Values. Si no quieres utilizar el Clear creo que tendrás que:
Código Delphi
[-]
for n:= 0 to ComponentCount-1 do
if Components[n] is TCustomEdit then
begin
TCustomEdit(Components[n]).Text := '0';
if Components[n] is TCurrencyEdit then
TCurrencyEdit(Components[n]).Value := 0;
end;
Saludos