I just found a possible bug in the identification of ester bonds.
Basically, the method OBBond.IsEster() returns true with
HOW TO REPRODUCE IT:
$ cat> testester.py << EOF
import pybel
ob = pybel.ob
smi = [ 'OC(=O)', 'CC(O)=O', 'O=C(O)c1ccccc1']
for s in smi:
mol = pybel.readstring('smi',s).OBMol
for b in ob.OBMolBondIter(mol):
if b.IsEster():
print "FOUND ESTER BOND"
^D
$ python testester.py
FOUND ESTER BOND
The test is positive with formic, acetic and benzoic acid, and it doesn't seem to be affected by the input format (I've tested Mol2).