IIRC /64s are ideally meant to address to individual subnets (the bottom 64 bits aren't intended for routing) so it's only really 64k addresses in the conventional sense.
/48 is actually a relatively standard allocation even for home connections, although /56 is more common.