Sven, this is interesting. I just took shermdog01's "Full Source" from the original post, plugged it into a new GWT project running with GXT 2.0.1, and the problem is there. I made no modifications to shermdog01's code whatsoever.
Bring up the app in hosted mode, click on the Submit button for the tabbed form panel example, and you will see that initially the form is invalid. Now click on the "Phone Numbers" tab, then the Submit button again. The form is now valid. This tells me that the "valid" attributes for the fields (and, thus, the formpanel) aren't being computed until the tab (or, more precisely the form fields?) are rendered.
Note, this test code does not use setDeferredRender(false) on the TabPanel. When you do use setDeferredRender(false), this solves the problem. So, my question is are you saying this problem doesn't happen in GXT 2.0.1 IFF you use setDeferredRender(false) on the TabPanel?
Now, the interesting part. In my app, I see the exact opposite behavior (again, running GXT 2.0.1), but I'll wait to describe that until I hear your response (hoping you can try the same thing above with shermdog01's example code) on the above first.
You will need to disable deferred rendering. This is also documented. I suggest to use the help forum.