If I understand your problem correctly, I think the best/cleanest solution would be to use the tailf:priority substatement to tailf:validate:
tailf:priority This extension takes an integer parameter specifying the
order validation code will be evaluated, in order of increasing
The default priority is 0.
I believe you should then be able to assign priorities such that if the callback for validation point A depends on the callback for validation point B having been run successfully, the callback for A is always invoked after the callback for B (assuming both are called).
Of course all validation callbacks have access to all the data in the transaction, and can use MAAPI to read whatever they want - they're not restricted to the leaf value passed to the callback and maapi_diff_iterate(). In fact using maapi_diff_iterate() in validation callbacks is typically not a good idea - it suggests that you are trying to validate the changes, and not the resulting configuration, which is always a bad idea. See the "Semantic Validation" chapter in the User Guide.