On OS X, getopt is POSIX compliant. GNU utilities tend not to enforce POSIX in getopt, as a result you can do things like ls .txt -la
On a POSIX complaint system, the optional arguments must come before any file arguments. This is super annoying to me, after having been using Linux for 15 years :)
Personally, I've been super happy with OS X for all purposes except servers, but to each their own, and that's where Linux (and the BSDs) shine – giving you access under the hood, which is awesome, but some of us just want the car to drive itself, so to speak.
I can understand that, but I just can't live without a tiling window manager. Every time I have to use a UI with movable windows I feel old-fashioned and clumsy. If you think about, tiling is the interface folks are used to with their phones and tablets already.
There's good UI research potential in discovering the ideal ways to indicate how to split, move &c. windows in a tiling WM.