In response to point #3, my counter-example is that when you list a method's arguments or return type, the parentheses include the star. In other words, the star does not "belong" to the variable in that particular case. -(NSData*) myMethod:(NSString*)string; It can really be argued both ways. We've hugged the type everywhere I worked.
But it can be very confusing when dealing with dereferences. So I feel you there. Doing C for 15 years you just get used to it.