For a cryptographic hash function and input values of shorter length than the hash function output, it's pretty obvious that there should be as few collisions as possible. But are there guaranteed to be none?
In other words, for a cryptographic hash function $H: x\to y, x \in \mathbb{N}, y \in [0,y_{max}]$, are there any $x_i \ne x_j$ with $x_i,x_j \le y_{max}$ so that $H(x_i) = H(x_j)$?
This seems to be a special case of Is every output of a hash function possible?, with the additional limitation of inputs to the space of possible outputs.
If there are any such collisions, wouldn't that mean that, due to the pigeonhole principle, there exists some possible output of the hash function that can never be reached by hashing another output, i.e.
$\exists y:H(x) \ne y$ for all $x, y \in [0,y_{max}]$?
Are common cryptographic hashes bijective when hashing a single block of the same size as the output? even mentions that some hash values are expected to be unreachable by all possible inputs, which would of course also imply the limited input range given above.
Are there any practical consequences of that property of hash functions? I'm thinking about things like the Bitcoin proof-of-work system that require collisions (or "close collisions", differing only by some amount from the target hash value) to be found. Any chance that finding such a collision (range) would be not only practically, but theoretically impossible?