Git has had native partial checkout for ages.
Things like submodules become even more complex. Without submodules there's no equivalent to map in library/engine code into place in a way where you can push changes back upstream.
Last I checked, things like logs and pulling still operate on every commit so it doesn't really scale the same way.
OP said this, maybe Perforce's partial checkouts are just better than Git's.