Is monogame support dynamic linking?
The content-pipeline FX handling doesn’t understand them. GLSL handles subroutines bizarrely and they aren’t broadly supported - you’re basically tied to desktop only even if you find a way to map them between DX and GL.
Aside from that cop-out answer, see section 7.19 of the DirectX11 specs, you’re basically at the driver’s mercy if you use them, sole purpose is to reduce shader combination complexity with minimal performance cost as can be read from the stated non-goals of them.
They’re more useful when you don’t have something like FX already dealing with the broad-strokes of shader combination hell.