The two tokens exist to resolve a direct conflict: an access token must be sent on every request (so it's exposed a lot), yet you also want sessions that last a long time without forcing frequent logins. You can't have both safely in one token — so you split the job.
