The "solution" in this answer doesn't work, as I'm sure most people here realize. The problem is that xfinitywifi isn't just one network. Every single router that's hijacked by Comcast is a different network, and even the network from one router can change itself, a bit like how the Borg adapt their shields to block phaser fire. If you "forget" an xfinitywifi network in the Advanced settings on the network settings page, you've forgotten one of the xfinitywifi networks, but not all the others, so the problem with come back.
The other aspect of the problem is that xfinitywifi has a Trojan Horse network; it's an open wifi signal that does nothing except get you to a login screen. The network that gets you access to the Internet is closed. However, most devices will connect to xfinitywifi if it's the strongest signal around, because the Trojan Horse network is seen as open. Obviously, this is all by design by Comcast.
As far as I know, there's currently no solution. The closest I know, besides continually forgetting the xfinitywifi networks again and again, is to convince the Comcast customers in your area to switch to a different provider. I recently switched to CenturyLink+DirectTV and got much faster service at less than half the cost. In areas where CenturyLink has fiber optic networks, nobody should be using cable anymore anyway. (Even high quality dsl is better than cable in many cases, but not all.) Also, CenturyLink and DirectTV have friend programs that pay you $175 for every new customer you convince to sign up. (The new customer also gets the same amount.) This is an all around win for everyone. The community gets one less xfinitywifi Trojan Horse network, you get $175, your neighbor gets $175, and your neighbor gets better internet and TV service for a much lower price.