Indeed, this
can be done, but usually isn't. And when it is done, it looks like another proprietary syncing protocol.
The thing is that you should not expect a user to explicitly host a git repo somewhere to for a grocery list app. Most apps are designed for users who are unwilling to do that, and are actually ready to pay to avoid whatever technical hurdles.
OTOH I see a niche for an app geared towards more technical users, chich would, among other things, allow you to point at a git / hg / whatever repo to use as the synchronization point.