Sometimes optimization will introduce more instructions (preparation phase) than the ones than the times accessors are used, therefore penalizing on performance.
Examples like:
- Single getter or setter.
- Non loops accesses.
- Small loops (up to 4 loops in general)
ArraySlice should be able to find that out, and do not optimize the method is there is no net win in performance.