How do pool server's handle multiple workers sharing one connection with Stratum protocol The stratum protocol supports authorizing multiple workers in a single connection. Unfortunately, I didn't find any documentation about how this should be handled by pool server software.

If multiple workers share the same extranonce1 (which is a per-connection unique string), wouldn't the workers duplicate work? Is this to be handled by the client?

Do all the workers use the same job_id for share submission?

Should a server send a job notify when the second, third etc. worker successfully passes authorization?

And finally, does anyone actually use this (multiple workers per connection) and for what purpose?
The client needs to handle dividing up the extranonce2 across all workers. Proxies can do this by moving part of the extranonce2 into the extranonce1.

Generally, the entire pool uses the same job_id for any given template, though it's only guaranteed to be valid across a single connection.

There is no reason for a server to send a new mining.notify when additional workers authenticate, though there is no reason they couldn't choose to either. You'll notice that most servers send the first mining.notify before any workers authenticate.

The practical problem with multiple workers on a single connection is that share difficulty is also set per-connection, and it is common that servers would want to give different workers their own difficulty levels.

While multiple workers is not especially common, it is helpful to reduce bandwidth on a large network where you may want to track pool statistics per-worker - or even conceivably per-chip (though no software supports that as of this time).