A note added to the compact command page about changes in 4.4 is not quite correct.
The current text reads:
Before v4.4, compact forced the secondary to enter RECOVERING state during its execution, which caused read operations from clients to fail. Starting in v4.4, compact does not change the run state of the secondary, and clients may continue to read from the secondary during the compaction operation.
I think this is simply incorrect; the compact command still enters RECOVERING state in all versions of the server up to the latest release, and we have no immediate plans to change this.