There is a flaw in your reasoning.
The operation carried out here is deliberately unsafe (for full-speed
devices). It is made before we know the actual maxpacket size for ep0,
and as a result it might return an error code even when it works okay.
This shouldn't happen, but a lot of USB hardware is unreliable.
Therefore we must not ignore the result merely because r < 0. If we do
that, the kernel might stop working with some devices.