В первой из процитированных вами статей (от 2009 гю) говорится не о git subtree, а о subtree merge strategy. Вторая - правильная. Единственно, чего не делаю, так это не определяю subtree как remote, чтобы во всяких Git Extension лишних "хвостов" от подпроектов не повисало.
Далее, поскольку любое обновление подпроекта через subtree pull делается ручками, а не автоматически, то вашего последнего утверждения я не понимаю. Вот сделал наконец разработчик новую версию своего модуля (длинной серий коммитов), потом в основном проекте сделал новую ветку, туда сделал pull своих окончательных изменений, проверил, что все работает, и может мержить в основную ветку. Или какой там у вас workflow? А разработчикам основного модуля и знать о subtree не надо. Вот есть поддиректория с (изменившимся) плагином - вот и пользуйтесь. Есть проблемы - обсуждайте с его разработчиком.
P.S. И почитайте про "грабли" с submodule - по ссылке во второй статье...
Написано только что