I don't think that mixing functions on different meshes or restricted and non-restricted functions in sigle form is now in production-ready state or even possible at all. Recently there has been supplied a lot of infrastructure for this to UFL by Martin Alnaes and also Anders Logg is working on something which has to do with different meshes. So expect this in near future.