There's a asymmetry here that "-R" works both for reverse static and dynamic (using SOCKS protocol) forwarding, but "-D" is required for dynamic forwarding which "-L" cannot do.
Why is that?
It's historical. Some older flags could be easily extended for dynamic port support and others could not.
It's historical. Some older flags could be easily extended for dynamic port support and others could not.