I failed to mention that I was previously running on 6.0.2
After upgrading to 6.5.2, I can now bind directly to the association store, which solved part of my problem.
For example:
Code:
xtype : 'order-items-grid',
reference: 'itemsGrid',
flex : 1,
bind : {
store: '{order.lines}'
}
I still however, would like to understand how I might be able to "bubble" changes in an association store up to the Owner so that formulas bound to said Owner will trigger as this remains desirable functionality for me.
For example, my Order entity has both a Billing and Shipping address. These are identified by a "type_code" i.e., "billing" or "shipping". This is handled well by Doctrine2's polymorphic discriminator:
Code:
* @ORM\DiscriminatorMap({
* "shipping" = "ShippingAddress",
* "billing" = "BillingAddress",
* })
In the Ext side of things, both addresses exist within the same Store and are managed via getter/setter on the Order model:
Code:
setShippingAddress: function (address) {
// ... code that manages removing an address of the same type from the association store
this.addresses().add(address);
},
I then have a Formula in the VM for each Address field to get/set from.
VM Formula
Code:
shippingAddress: {
bind: '{orderEntity}',
get : function (orderEntity) {
return orderEntity.getShippingAddress();
},
set: function (address) {
this.get('orderEntity').setShippingAddress(address);
}
}
View configuration
Code:
xtype : 'address-picker',
reference : 'shipToAddressPicker',
fieldLabel: 'Ship To',
bind : {
address: '{shippingAddress}'
}
All that works splendidly, but because the Address is managed via an Association store, it does not cause other Formulas bound to the Order to trigger 
Code:
enableSaveButton: {
bind: {
bindTo: '{orderEntity}',
deep : true
},
// this will not be run when changes to order.addresses() occur :(
get: function (orderEntity) {
return orderEntity.isValid();
}
}
Am I doing this all wrong or is this just something that doesn't work this way?