I always thought it was obvious that David kept seeing Cindy because he couldn't have Carol. Cindy was an easy target for an affair because he could see how bored she was with Ian, but if you look back to past episodes, he didn't mean for it to get serious or long-term. Once Cindy starts getting obsessive about him, you can see he feels trapped.
David and Carol were definitely each other's true loves. They just had a lot of bad timing (her brothers when they were young, David not knowing about Bianca until years later, Alan, Cindy etc)