On second thought, it does cause a problem:
db=> create table aa (aa integer[]);
CREATE TABLE
db=> select distinct(array_length(aa)) from aa;
ERROR: function array_upper(integer[]) does not exist
HINT: No function matches the given name and argument types. You may need to add explicit typecasts.
CONTEXT: SQL function "array_length" during inlining
--
greg