Currently people can either use theme provided layouts that are hardwired (according to well set patterns) or override the whole page rendering with tools like Panels to get their way and ignore regions and theme provided layouts altogether.
Once we make it possible for themes to declare their provided layouts formally (#1787846: Themes should declare their layouts) - instead of just tying them to specific paths or using baked-in logic, we should be able to provide a user interface to assign layouts based on conditions. The most basic condition would be the path obviously, making the path => layout assignment configurable instead of hard-coded with the path components. If/once block visibility conditions as plugins work out (#1743686: Condition Plugin System), this can extend to other conditions like permissions or language.
We should figure out how to declare layouts first in #1787846: Themes should declare their layouts and then when we have layouts get back here. UI discussions should be possible in the meantime.