Cachable could easily be false, and is false in some cases (when you want your draw function to no-op).

OffsetRect would be false for new implementations (that offset the rect themselves), but old code requires it.