When compiler optimizations are turned on this line:
NSLog(@"start point : %@, line start x: %f, line start y: %f", NSStringFromCGPoint(staffLineStart), staffLineStart.x, staffLineStart.y);
yields
start point : {20, 88}, line start x: 20.000000, line start y: 20.000000
Edit 1: I've worked around the problem by inlining the method that populated CGPoint staffLineStart.
Bizarre.