This is one of the most popular problem.
h:commandLink was designed in the pre-Ajax era when nobody has an idea to re-render part of the page, but not the whole page. h:commandLink is designed to be re-rendered only together with the whole form. Any ajax kills it otherwise.
rich:tabPanel switchType="ajax" means and ajax.
There are no other reason for a4j:htmlCommandLink than solve this problem.
Thank you this is it