If
user is being freshly bound, that isn't an assignment but an initialization.
If the construct is not allowed when user is already in scope, it reflects the designer's view that an assignment in a conditional isn't a good thing.
If the construct is allowed when user exists already, with no diagnostic, then it carries the pitfalls that this thread is about.