I think you may be getting confused with CVS, where if you commit multiple files each will get its own version number like “1.34”.
Subversion creates commits across the whole repository. All files and directories you want to check in get a single revision number like “123”.
The svn file format vs the git pack format are very very different on-disk.
With git on the other hand, all the file storage is local to you machine regardless of which other remote git servers you may be using.
In addition, git blame doesn’t have to go through all history; the logical git storage model is object based on hash, so it’s really a set of queries for the contents of hash values that is used. Yes, it walks through commits, but at the lightweight metadata of trees which are akin to navigating a file system.