Во второй статье как раз и поясняется, почему IDisposable в .NET - это meh, а деструкторы С++ - добро. В С++ просто не принято каждый чих выделять на куче, а любая ссылка на кучу должна иметь собственный проверенный деструктор. В .NET/Java все эти ссылки неявны и вполне хорошо создают утечки памяти (поскольку думаешь, что за программиста работает гарбаж коллектор).