It is mostly by design as that’s how the connection plugins are initialised. Each connection plugin is created post fork for each task executed which means we need to open a WinRM shell then close it for every task.
We’ve been toying with the idea of connection persistence for a while but nothing has come out of it so far. Potentially a change in the future but there are no guarantees.