I see your point, but then I would suggest "inverting" the logic.  That is, use `dir` or similar, and then explicitly *exclude* those that it isn't suitable for.   So then if a future added function is not invertible, then the author of that function will see that the test fails, add it to the exclude list, and then all is fine.  But if the new function is supposed to round-trip and *doesn't* because of a bug, then this will catch that bug instead of letting it silently pass through.

This is mostly coming from an attitude that a lot of PRs don't have full test coverage, so getting some tests run "implicitly" is better than nothing.