Hmm, realized this after posting: my comment on /64 to /48 is rather off-topic, and the reason why the ISP allocates dynamically might be that they are using 6rd [1].
From what little I understand of it, 6rd calculates an IPv6 subnet by using the IPv4 address. So unless your v4 adress is static, your v6 subnet will be dynamic. Some cable providers are using this in Canada (Videotron). I hope they get rid of it soon, because it's really clunky!
[1] https://en.wikipedia.org/wiki/IPv6_rapid_deployment