From your question, it's not clear if you understand what the ->
operator does.
That example in the GNUStep NSOperation source is using an ivar. That's what the ->
operator does — it dereferences the pointer and accesses the named member.
As for "Why not use dot notation?" The obvious answer would be that they didn't want to go through an accessor. Going through an accessor is slower than direct access and has no real benefit in a case like this where we're just working with "dumb" internal state.
So when should you use it in your Objective-C code? Mainly when you're accessing a struct through a pointer. There is seldom a need to access another object's instance variables directly. If you do, that code is the exception, not the rule.