Because they don't want you to host things at your house, even though that's perfectly fine from a technical standpoint. They might want to sell you a "business" line for this, or they just don't want the traffic (since at least in my area, traffic is always included in any home Internet connection).
Because grabbing a random prefix from the pool is easier than remembering which prefix is assigned to which subscriber account and keeping it static through ISP network changes.
My ISP does 'sticky' prefixes, which means they change when they move users between BNGs but otherwise don't.