
Not quite "4 billion" usable addresses.
Apart from small fry like 127/8 and the two "directed broadcast" addresses on both ends of each subnet block no matter how small, there's 224/3 to consider. 224/4 is multicast, and 240/4 is "reserved". Reserved for what? I don't know. Those addresses will be blocked in innumerable devices, but strictly speaking they're free (minus 255/8 just like 0/8 and 1/8 are tainted). I think those last fifteen /8 blocks might see service before too long.
With a bit of foresight, or rather the benefit of hindsight, it would likely have been possible to put LINK LOCAL, LOCALHOST, 0.0.0.0, 255.255.255.255, and a goodly chunk of rfc1918-type addresses in a single /8, which would've saved a lot of hassle and freed up a couple blocks. No directed broadcast likewise. But that supposes people would've figured out right away that directed broadcast was a bad idea and that some day we might very well run out of addresses. Then again "they" didn't even start out with CIDR, as classes seemed like a good idea at the time, too. Oh well.
Quite amazing that IPv6 still hasn't seen much take-up yet, at all. Even where ISPs supply custom-firmwared modem/switch/ap/routers and regularly update them, there's very, very few that actually support IPv6 at all. Is civilisation supposed to collapse first?