It appears that the timezone is set at CentOS installation by copying /usr/share/zoneinfo/Europe/Zurich to /etc/localtime. At runtime, when the JDBC driver calls TimeZone.getDefault(), the JRE appears to search all files in the CentOS timezone db (/usr/share/zoneinfo/) until it founds one that is identical to the one in /etc/localtime. So the result is randomly Europe/Zurich or Europe/Busingen, since both files are identical in /usr/share/zoneinfo. If the timezone is set by doing "ln -sf /usr/share/zoneinfo/Europe/Zurich /etc/localtime", the JRE finds the intended one directly.
In any case, upgrading to the latest PostgreSQL version also solved it.
Thanks for your help,
Alexandre