Prior to v6.0, ViewController::viewLocation() and ViewController::viewContent() had parameter $layout default value to false. The consequence was that noLayout parameter, injected further down in templates, had true as default value (the exact opposite).
The goal of such parameter was to ensure that templates used in subrequests always had the information not to use the main pagelayout by default, especially when rendering content from legacy (templates not migrated yet to Twig).
We could also do stuff like the following:
Problem with the value injected by NoLayout injector is that the default value of noLayout parameter changed. It currently checks if layout parameter is present (which is not the case by default with the new view system) and if not, defaults to false.
Consequence is that when migrating an instance from eZ Publish 5 to Platform with legacy bridge, main layout is always used, causing an infinite loop in case of subrequests for which content is rendered through legacy bridge. This sounds like an undocumented BC break to me .