But why not do both? I find that nice commit messages make it easier on the review to see whats going on rather than a bunch of wip commits. Then squash all of the commits into a single commit with a nice title and message. The benefits of the squash at the end are, assuming you require tests pass before merge, you have a history of commits all with passing builds which makes bisect possible.
When I had a linux machine I used i3 and loved it. After moving to OSX I search around for a solution and finally found Amethyst. Gave it a solid try for ~6 months or so but recently have moved to using BetterTouchTool with some custom key shortcuts for moving and resizing windows. I've found this works the best for my workflow. I would love to use a tiling window manager for OSX but in the end found Amethyst to be a little sluggish and, as mentioned elsewhere in this thread, buggy for full screen apps. I think ianyh has done an amazing job at working around a system that wasn't meant to be extended in this way, but that puts it at a dis-advantage right off the bat unfortunately.