Обычно пару токенов хранят в двух разных местах - access в localStorage, refresh в http-only куках. А для получения новой пары требуются оба токена. Безопасность разделения заключается в том, что токены подвержены разным типам атак - access уязвимы для XSS, refresh уязвимы для CSRF, но не оба вместе. Соответственно разделение позволяет предотвратить компрометацию при условии, что не обе атаки реализованы сразу на одного и того же пользователя.