Nuttx patches

What is the rational of the Nuttx patches?
are they all on the nuttx upstream, and will merged into PX4/Nuttx later?
If yes, why not to just commit them on the PX4/Nuttx clone? and when nuttx will be updated, they will automatically merged?
Git also support cherry-pick commit, even from other rep into PX4 Clone.
so even fix on the original repo can be associated into PX4 Repo, right?

I believe they’re a mix of changes that are headed to upstream Nuttx and some changes that wouldn’t be accepted upstream. It’s easier to keep track of them as individual patches rather than commits merged into our fork. The layout of Nuttx is also more complicated now with multiple submodules. https://github.com/PX4/PX4NuttX/tree/44ad7e224c1ef17911ab8b4101fd624ad9ee4177

I can understand that some patches that are going to be on upstream will eventually go-into PX4/Nuttx/nuttx. so why not to commit changes into it? and not by patch?
Patches are confusing when you go over the code to understand it.
It will be more and more complicated when more and more patch will be added.
One method can be adding some text “hook” next to patches on nuttx folder. so when new nuttx version will be merged into PX4/Nuttx/nuttx, the contributer that will merged it will need go over the ‘hooks’ and to decide if to remove/replace/change/keep the “in code” patch.
Is there schedule from now on to keep updtae the OS, or it might be few years, like before?

@david_s5 or @LorenzMeier might have a better explanation. What’s the reasoning for patches vs committing to the PX4 Nuttx fork?