Как реализовать синглтон в Java?
Возможно, дело в том, что во втором случае instance создаётся не при вызове метода getInstance(), а при загрузке класса в виртуальную машину. То есть, если вы каким-то образом обратитесь к этому классу не для того, чтобы получить instance, то он всё равно будет создан.
во второй приведенной вами статьей описано, почему, что и когда лучше. + в комментариях мельком затрагиваются моменты когда вообще не стоит использовать сингелтон.