I don't know how Google handles this, but I wrote a driver that can accurately detect when an ajax page finishes loading. I simply wait for a certain amount of time to elapse when there are no pending requests. (FYI, the project is linked in my profile)
SPA are indeed indexed in Google (and even without providing server side rendered versions). I guess it uses a combination of URL hash changes and pending requests.