See upstream -
https://github.com/raspberrypi/documentation/issues/1671https://github.com/raspberrypi/documentation/pull/1673
Quoted here:
* Only Device Tree nodes at the top level of the tree and children of
a bus node will be probed. For nodes added at run-time there is the
further limitation that the bus must register for notifications of
the addition and removal of children. However, there are exceptions
that break this rule and cause confusion: the kernel explicitly
scans the entire tree for some device types - clocks and interrupt
controller being the two main ones - in order to (for clocks)
initialise them early and/or (for interrupt controllers) in a
particular order. This search mechanism only happens during booting
and so doesn't work for nodes added by an overlay at run-time. It is
therefore recommended for overlays to place fixed-clock nodes in the
root of the tree unless it is guaranteed that the overlay will not
be used at run-time.