I briefly dated a guy like Rob (although he did have a bathroom) when I was 19. He was 30. (Yeah, yeah, I know - I was young, naive, and he lied about his age, so…)
Obviously, Sophie is older than I was at the time, but the age gap is similar, and I see a lot of my ex in Rob, especially with his reactions when he feels like Sophie is calling him out for his living conditions.
Guys like Rob are generally ashamed of where they are in life, but instead of doing something about it, they try to convince other people that they’re happy, confident, and successful. This tends to work best on younger girls, who don’t have a lot of experience with men, and thus have fewer expectations.
Rob knows that many (probably most) men his age (and honestly, even in their 20s) could provide Sophie with a much better standard of living. Whether he does it intentionally or not, his method of coping with this and trying to “protect” the relationship is to convince Sophie that she’s a “princess” or “spoiled” for wanting anything other than what he can provide her with.
Eventually, she will wise up and leave him. But he’s going to continue this pattern until he works on himself and begins to create a life that he can be proud of.