I don't know why rect was set up that way, but one good thing about the way right & bottom relate to width, is that right = left + width and bottom = top + height
Ok, that is obviously consistent with my observed results. So, I now understand how it works, but could anyone shed some light as to why it was done this way? Is it to mirror Python's other behaviors, such as range(3) or slicing's [0:3]? Does SDL simply do it this way? Something else?