How could you squash multiple commits together without using git merge --squash?
Caching
You can't. git merge --squash is the only git command for that operation.
Rebasing
Reflogging