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.
If stuff is designed for big servers that run Linux, it’s easier to get it to run on a desktop PC if the PC runs Linux too because then it’s the same thing except much less powerful.