I confess I can't tell how the skip-worktree bit does differ from
assume-unchanged. Is its 'goal' different only in that you have a
different motivation for introducing it, or does it actually have a
different effect -- and what is that different effect?
Looking forward to seeing sparse checkouts soon!
On the fun side, you could use both bits in the same worktree, to
narrow your worktree and have some assume-unchanged files.
Another difference is that with assume-unchanged bit, you make a
promise to Git that those assume-unchanged files are "good", Git does
not have to care for them. If somehow you violate the promise, Git can
harm your files on worktree.