Interesting. I heard another explanation of "which vs that", like "which" adds unnecessary information to an object, while "that" selects the object from the range of all possible similar objects."I have a dog that loves to eat his own poop"
Here's a couple of examples:
A dog that eats poop is at greatest risk of infection with worms. (Only that kind of a dog is in danger, othere dogs are safe)
A dog, which eats poop, is at greatest risk of infection with worms. (Any dog is at the risk, because all dogs eat poop)