> Why would bookmakers ever take bets from someone they don't expect to make money from?
Well, bookmakers like to minimize their risk. So, suppose Person X is going to bet on team A, but most people have already bet on team B. The bookmaker thinks team A is far more likely to win, but he still takes the bet. Then he goes from being a gambler to having a balanced book and making a known profit regardless of who wins.