assignments preceding special builtins persist as exported
Forgot to log in again. I am the reporter.
The current behavior is explicitly allowed in the POSIX standard.
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_09_01
If the command name is a special built-in utility, variable assignments shall affect the current execution environment. Unless the set -a option is on (see set), it is unspecified: (1) Whether or not the variables gain the export attribute during the execution of the special built-in utility (2) Whether or not export attributes gained as a result of the variable assignments persist after the completion of the special built-in utility
It is surprising to me, though, that many other shells behave differently than yash.
The assignment should persist as : is a special builtin, but I don't think it should be exported.