I always new David had a soul. The real question is, does he know he has one?
I can see many issues arising from this.
Soul doesn't exist. David doesn't have one. He's got consciousness as we have.
Scott addresses this on the commentary, but I don't remember exactly what he says. It's during David and Shaw's conversation at the end of the movie. David does not understand why Shaw needs answers, and she speculates that it's because she's human, and he's a robot. That was as close to being on the nose as Scott wanted to get, I think, but the idea was that David does not have a soul, but Shaw does, and that this distinction is important to the story. I'm not sure he referred to it as a soul, but he did not seem to think that David is fully alive. At least, he didn't think that in 2012.