How to expand the WINDOWS partition when the Recovery one is in the way?

You can't "swap" them but you can move the recovery partition easily. Any 3rd party partitioning software can do that, like MiniTool Partition Wizard, AOMEI Partition Assistant, EaseUS Partition Master, Macrorit Partition Expert...

So after installing any of them you need to

  • Right click on the recovery partition > resize/move and move it all the way to the right
  • Right click on the Windows partition > resize/move and resize it to fill the newly unallocated space on the right of it

Or you can remove the recovery partition completely. There would be no problem since Windows 10 already has built-in refresh and reset feature to do factory reset. You can also create an image of the recovery partition and store it somewhere before removing the partition

However it is possible to create a partition that spans across various spaces with dynamic disk, which is the analog of Linux's LVM. Just convert the disk to dynamic and extend the partition to any available space