ISO does not allow aliases in current_input/1.
Correct. This can be seen already from the precise error produced:
?- current_input(alias). domain_error(stream,alias).
Thus the domain is stream. But with close/1:
?- close(1+1). domain_error(stream_or_alias,1+1).
Justification in 7.10.2.2 Note 2.
Or from the corresponding Template and Modes sections.