Логические параметры в функциях могут вводить в заблуждение и затруднять читаемость кода, если имя функции неинформативно:
DoImportantStuff(true, false, true, false);
Неясно, что означают эти параметры. Что значит первый true или последний false? Можно ли в таких случаях сделать код лучше...