Условие и принуждение , о котором вы упомянули, являются типами неявного принуждения .
Неявное принуждение относится к преобразованиям типов, которые не так удобны для чтения или не подходят для разработчиков. И из того, что я узнал, большая часть ненависти к неявному принуждению проистекает из того факта, что он не указывает точно, что именно конвертируется, и поэтому может привести к неожиданным или непреднамеренным результатам.
Булево преобразование - это явное приведение , означающее, что оно более читабельно для разработчиков и определяет, что преобразуется (в отличие от того, что подразумевается).
У меня нет четких ответов по скорости / производительности и принципам в отношении ваших вопросов, но если вы беспокоитесь о читабельности (для будущего ознакомления или другого разработчика), то Булево преобразование - это способ идти.