A check which is incorrect (e.g. too strict) is however also not correct.
I like your idea is scanning USOBT_C. There you can often find a comparable transaction which does the same or similar as what your custom code wants. Perhaps you dont even need the custom code anymore..
If you take it a step further by searching for the use cases of the object via SU21, then you can also often find central function modules and methods which do all the checks for you and consider customizing etc).
You are on the right track IMO ;-)
Cheers,
Julius