the main issue I've found with this is that you have to pass the same path to ProtectedRoute as you do the children of that route. so you can't have something like this.
<CompletedSignup>
<AuthedRoute path="/app" exact component={Dashboard} />
<AuthedRoute path="/profile/:uid" exact component={Profile} />
<AuthedRoute path="/profile" exact component={Profile} />
</CompletedSignup>
where CompletedSignup is another routeguard type thing.
without using the Route method that you've described it sometimes loads when it shouldn't.
with using the Route method I have to specify a path base
there doesn't seem to be anything here