When the sqla detects a change in an attribute which is included in the
relationship() join, it can automatically expire the property of that
Bear in mind, some joins are manually specified, so these wouldn't necessarily be fks. I think it is sufficient that if the attribute that is changing is included anywhere in the join, the expiration should take place. This leaves some flexibility for mapper joins that are manually specified.