Из документов PHP
https://www.php.net/manual/en/migration70.new-features.php#migration70.new-features.null-coalesce-op
Нулевой оператор объединения (??) был добавлен как синтаксический сахар для общего случая необходимости использования троичного вв сочетании с isset (). Возвращает свой первый операнд, если он существует и не равен NULL;в противном случае он возвращает свой второй операнд.
Исходя из этого, нулевой coalescor обрабатывает все, что осталось, как аргумент выражения для isset()
Так что $ok && $someArray['optionalElement']
принимается как полноеexpression.
Обтекание ( $someArray['optionalElement'] ?? true )
в скобках приводит к тому, что только $someArray['optionalElement']
будет выражением, и оно будет работать так, как вы ожидаете.