This is one bad feature among many good decisions, but bad nonetheless. The language will have yet-another-way to do type-erasure/autoboxing that will have to be tracked down, in the interest of removing boilerplate when multiple types are desired to be coerced. Type safety is recognized as valuable by the PHP core voters on one hand, and waved away by the other.
Imagine the fun!
<?php
function callit(float $numI) {
$numB = $numI || ($numI/2);
echo gettype($numB)."\n";
$numF = ($numI/2);
echo gettype($numF)."\n";
return some($numB);
}function someType(int|float $numX):int {
echo gettype($numX)."\n";
return $numX;
}$ret = callit(2);
echo gettype($ret)."\n";