My understanding is that freeSpace is fast and usedSpace is much, much slower (~2 seconds according to your measurements) so doing these sequentially probably adds only 5% or something to the total time. And the algorithm is simpler, and I've already tested it.

So I'd like to keep it this way for now. We could file a bug to optimize it later.  But it doesn't seem to be in the startup path for the settings app, so it doesn't really need to be super fast, anyway.