I've looked into this and the reason for that the apiVersion doesn't show up in the general config page is that the shown value is retrieved from the existing RundeckClient class, which is not possible. Maybe it was possible earlier, I don't know.
Looking into this I see that the problem migth even be bigger; the RundeckClient is currently created from the stored values through reflection calls. I don't know if that creates it correctly (sets the apiVersion etc). The correct way should be to create it via RundeckClientBuilder.
I tried to figure out how to create an xstream converter to do this, but didn't really manage in the time frame I had available.
One other thing I was thinking about is that with the current solution around apiVersion, if the field is left blank (default) it will in fact be persisted as the current API version of the Rundeck client lib used. So when upgrading the rundeck plugin, the apiVersion will not follow along but stay with theearlier version. Not what the help text for the apiVersion field says and what I think it should work. It should be possible to not specify an apiVersion and then always use the default version.
I believe the problem is even worse, the apiVersion doesn't seem to be used at all. At least not for the test connection. Still a problem in v3.4.