Switch type is relevant because in case of "client" you will have full tab panes rendered and processed. Inactive tabs are just hidden, but fields are there and will be processed.
However, you should expect that in case of "ajax" or "server" switch type inactive tabs will NOT be processed. If it not true, than we have one more bug. I remember that it was working as I describes just a few weeks ago, may be we can blame some resent changes.
I've tried it with "server", "ajax" and "client" and in the case of all three, I am taken back to the form on the other tab.
Just to try something, I removed the wrapping form tag from around the rich:tabPanel just to see what would happen and it didn't make any difference whatsoever.
If it helps, I upgraded to 3.0.1 from 3.0.0 to workaround this bug, which deals with tabs as well:
Ok, I found a "workaround". Or perhaps I'm just starting to use it the way it was really inteneded. Fortunately, RichFaces doesn't work like Tomahawk in that we can embed forms within tabs. In Tomahawk (as of 1.1.5 Snapshot) you can't do that because it puts a form around the whole thing, thus nesting the forms. Anyway, once I realized I could do this, thanks to a few recent posts, it fell together and now I can validate and switch tabs independently using either "client" or "ajax". I didn't try "server", although I'm sure that probably works as well.
Thanks for the help here folks.