Does Postgres ever require a naked field without single quotes?
With overloaded functions (same name but different arguments), there can be cases where they mean different things. But you should probably avoid creating such cases.

create function j(int) returns int language SQL as $$ select 1-$1 $$;
create function j(text) returns int language SQL as $$ select 7-$1::int $$;
select j('5');
 2
select j(5);
 -4