In DefaultDavServerManager, the createServer method instead of creating a new server each time it's called is reusing the same server for all paths.
The "DavServerComponent server" needs to be created each time createServer is called instead of being injected by plexus when the DavServerManager is created.
This bug makes multiple repositories with different settings not work.
For example "internal" has snapshots disabled, while "snapshots" has snapshots enabled. When a request comes for the snapshots repository, webdav is using the metadata for the "internal" server which has snapshots disabled and refuses to download snapshots.
It's possible that if it downloaded snapshots they would be put on the wrong repository ("internal"), but I haven't verified this.