In biopython `feature.location.end` can be equal to `next_feature.location.start`. For example:

```
type: TRANSMEM
location: [187:208]
qualifiers:
    Key: description, Value: Helical. {ECO:0000255}.
type: TOPO_DOM
location: [208:411]
qualifiers:
    Key: description, Value: Extracellular. {ECO:0000255}.
```

Although there is some biological ambiguity over this example (residue 208), in others there is not. Hence I ask which domain do the residues that are overlapped truly belong to?
Devon is right that a protein might well be annotated with overlapping domains, however in this case the domains in your example do NOT overlap. Biopython uses Python style slicing notation, so [187:208] and [208:411] do NOT overlap. e.g.

```
>>> example = "0123456789"
>>> example[3:6]
'345'
>>> example[6:9]
'678'
```

Also beware that Biopython and Python use zero-based counting, rather than the one-based counting you may be more used to. Note SwissProt/UniProt annotation files use one-based counting in their plain text and XML file formats.