(5) это ведь невозможно отследить на этапе компиляции. Например
Если а=0 Тогда
НачатьТранзакцию();
КонецЕсли;
Если б=0 Тогда
НачатьТранзакцию();
КонецЕсли;
как вы определите? Ошибка здесь или нет?
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший