The code works according to RFC.

There is a justification for this behaviour in RFC.

Quote from RFC:

To avoid name clash, we will reserve 
these names by adding entries for them
in _func system space. _func.name
index collation will change
to use unicode_ci. All built-ins
will be added to the bootstrap snapshot.

It is not really mentioned why it is necessary
to change the collation. Also, there is no conflict
with SQL functions as long as every query gets upper-cased.