Why does the coords method sometimes return a list of points and sometimes a list of coordinates?
The rational is ease of use. When the return value of coords is a number of (1 or 2) points, well-known in advance, the returned value is a flat list of 2 or 4 coordinates. A flat list is easier to use by the developper. In all other cases, the returned value is a list of points, i.e. a list of lists of coordinates.