With a query like q = session.query(model).join(someOtherModel), q.filter_by(id=someId) would filter using the someOtherModel.id field not the original model.id field. (filter_by always applies to the last joined model)

If you'd access a resource /model/123 which is made from a query containing a join statement you'd end up with the wrong response.