6 is mainly to solve the caps matching failure in the place where it belongs.
No transform care about mismatched fps as of today and there is no reason we need to call gstreamer for something that would pass through buffers but change fps, this can be done on the client side.
I'm not saying that something being common to all users is a bad reason to share code, it's just not necessarily a great reason either. It's not hard to see this as something specific to one frontend. It's not something that inheres about matching GStreamer caps, it's just working around bugs in Media Foundation games.
Regarding 7, it is going to be needed to fix some frame size / padding issues when clients set it on input but miss it on output, or set a new output type with a missing aperture but overall matching frame size. The decoders we have currently workaround this by clearing the frame size before set_output_format, and this is incorrect.
...Incorrect why, though? It's doing the exact same thing as this code is doing, just on another level.