For an SPA, there is no difference in loading time between a modal and non-modal view. The (annoying) SPA penalty is initial page load, which is a one-time cost.
The location changes are virtual through the history API, with a reload just causing the SPA to start from that location instead of from the root/home view.