The main issue is that using this facility, which mirrors the existing one, is not backwards compatible and will result in an error when viewing the docs that use this. Mainly because ‘return’ had a simpler structure so it mixes with the fields and, which are equivalent to options but at the top level.
Note that B) has another con: if you mix return fragments with documentation in the module, like showing a version_added for a return value from a return fragment in RETURN, then it will result in documentation you cannot look at with ansible-doc. (Unless such ‘merges’ also have to be moved to RETURN_FRAGMENTS, which then means that return values can be specified both in RETURN and RETURN_FRAGMENTS, which in turn opens more cans of worms…)
Regarding punting / E and backporting / A: I’d prefer to have this feature in as early as possible, so we can start using it sooner. Depending on how it goes (i.e. if older ansible-doc versions cannot show docs, or show only incomplete docs), it will take some years until collections dropped support for all ansible-core versions that cannot handle return fragments and can start using that feature. It would be nice to reduce this amount of years to a very small number (preferably 0, which is quite unlikely though ).
As per B) the new variable can have diff sections, 1 for fragment list, 1 for overrides, any reimplementation should take these things into account. And, yes, this opens to duplication, one reason i’m not sure this is a good option.
As long as the warning is shown, users know that the documentation isn’t complete, but they can at least view the remainder of the docs. I would display the warning in the rendered text docs as well, though (maybe in the return value doc section), so that the warning is harder to miss.
I think it’s mostly a bugfix, since it prevents a crash. The warning part can be seen as a feature, but I personally think that it is OK since it’s a big help for users, which would otherwise not know that something is amiss and was ignored. (I tried the current warning, it’s basically impossible to see it without scrolling up after exiting the help viewer.)