@lilty I do not like this proposal and I think it will bring just more confusion.
When you have a type hint declaration you can understand what can you do with a value. For example if you have an array $a you can use count($a) or take a value by index. When you have callable argument, you can call it as a function.
But what if you have int|array $a or int|SomeClass $s. What can you do with it?
Accepting or returning values of multiple types is generally a bad idea that makes code more complicated and prone to errors.
Regarding standart PHP functions like strpos() that can return either int or bool they are just poorly designed. false can be easily converted to 0. There is no need to implement type hints for such functions. In other languages like Javascript usually -1 is used instead of false.