Aliases are treated just like any other identifier. The downcasing happens in the lexer (src/backend/parser/scan.l), which is totally unaware of the context in which this is happening; so there's no way to tweak the downcasing behavior for only aliases and not other identifiers.
Oh OK, that makes sense and yes can see through complexity. So I believe when aliases are quoted then the scan process might be different and hence quotes aliases TEXT CASE gets preserved.