I think this is more of a purist approach, however if a user is actually sending ETH via msg.value, it is hard to imagine why assets
would ever be a truer value. MAY
seems like undefined behavior, but it really does mean MUST NOT
rely on assets
only.
“MAY ignore assets parameter as an input” could be removed, but I think the spec benefits from having some extra clarification here.
Forcing everyone to require msg.value >= assets
could just let people use assets=0 always anyway. I think the benefits of forcing any kind of relationship are negligible and having the explicit behavior of relying on msg.value is cleaner and has fewer footguns.