This kind of griping is what I find myself doing when I don't understand or know something very well. Once you get to really know it, you can put all those complaints out of your mind and focus on getting stuff done. Learning is a process and at least for me, a series of complaints and arguments with myself, trying to reconcile what I observe with what I think should be there, is an important part of the process. If you keep constantly jumping between platforms and APIs, you are always going to compare them at a deficit to what you do know.
True but it only goes so far. For instance, I spent 5 years honing my PHP craft. At the end of that time I was pretty good at it, but I still had to look up whether it was haystack, needle or needle, haystack every time.
Good observation. I know barely anything about ObjC/Cocoa, but if I was pushed to provide an opinion on them I'd start griping about how awful the verbose mixed case method names and prefixes on everything look. Which obviously isn't hindering the other people making fantastic iPhone and Mac applications.