As far as I’m aware using WSL does not solve the issue that Windows is just not very good for these kinds of tasks.
It might work for compiling the occasional program or something like that, but as soon as you want to venture beyond that (like connecting to CAN networks) it becomes really difficult (as you mentioned, that’s when the cross-OS issues start to get in the way).
As a simple example, here I’m doing a simple demo by turning a magnet on/off; on Ubuntu I can open 2 separate terminals connected to the device through Cyphal/CAN; one observing the state of the magnet and one sending commands. This works because at the level of interacting with the network we can rely on SocketCAN.
Using Windows, doing exactly the same is simply not possible: a serial port can only be accessed by 1 process on Windows (and SocketCAN is only supported on Linux).
(If you’re planning to do embedded programming, GNU/Linux is also a no-brainer.)