Hello Rafal
Yes, I agree with you! Setting aside the range of 127.0.0.0/8 means that you’re setting aside over 16 million addresses just for the host loopback address!! Remember that the IPv4 protocol was designed primarily in the early 1980s, so there was no way for engineers to foresee address exhaustion as a problem almost forty years later! So they set aside way too many addresses for loopback. There were other seemingly wasteful allocations as well, including the 240.0.0.0/4 which has been set aside for experimental use/future use.
They could change this definition to free up addresses, but I think they decided against it since IPv6 had already been designed in the late 1990s, and was expected to be rolled out sooner.
IPv6 has taken this wastage into account, and even though there are many more available addresses, the loopback address in IPv6 is a single address:
0:0:0:0:0:0:0:1/128 or ::1/128
This IPv6 loopback is defined in RFC 4291.
I hope this has been helpful!
Laz