If с проверкой присвоения — приемлемо?
не надо так делать. даже если конкретный язык и позволяет такое делать. это сильно затрудняет читаемость кода.
А чего тут злиться? 
Нормальный вопрос на приведение типов и приоритет операторов.
И вообще, я злюсь когда тупят и отрицают очевидное. Вот как этот пассажир например. Хотя там скорее уже жалость, а не злость. 

Приоритет у оператора ! один из самых низких, и в любом случае ниже чему у оператора = 
Поэтому вполне можно использовать в таком контексте

Непонятно только, зачем условие растянуто на три строчки.
Форматирование кода должно помогать его читать, а не усложнять чтение. поэтому написать
if (!$user_bank = self::findOneBy('`user_id` = ?', [$id]))
{

хотя опять же, для читабельности, лучше разнести на две строчки
$user_bank = self::findOneBy('`user_id` = ?', [$id]);
if (!$user_bank)
{