Could different Functionspaces be defined on different subdomains in one mesh?

For legacy dolfin. See MeshView and the corresponding paper and examples:

For similar abstractions in DOLFINx, see for instance