Also seems like after an invalid nameref assignment is encountered, declare
works oddly on remaining assignments that are part of the same command:
$ unset -n bad good
$ declare -n bad+=. good=var
bash: declare: `.': not a valid identifier
$ declare -p good
declare -- good="var" # created, but not a nameref
$ unset -n bad good
$ declare -n good=var; declare -n bad+=. good=foo
bash: declare: `.': not a valid identifier
$ declare -p good
declare -n good="var" # not modified
$ unset -n bad good
$ declare -n good=var; declare -n bad+=. good=var
bash: declare: `.': not a valid identifier
bash: var: nameref variable self references not allowed # ??