The problem here is that the lowering relies on a notion of ExecSemantic (which is actually kinda fragile and should probably be dropped in general) but we cannot give Identity such a semantic, since it will be "one to one" if id is called on a scalar and "many to many" if id is called on a sequence.
Hopefully ExecSemantic should be superseded by the type calculation anyway.
I'm marking this as a bug for now, though it may never cause observable behavior.