Есть ли подводный камень у данной конструкции?
Трудно читаемо.
Не плохо бы еще проверять тип, например $x может быть строкой, но после вашего условия вы будете считать, что это int.
Прочитайте требования к оформлению кода PSR-2if ( !isset($x) )
    $x = 123;
Такая конструкция - признак очень плохого тона.
В вашем случае я бы использовал тернарный оператор