Neither Unity nor Unreal are FLOSS projects. That means that I'm at the mercy of any API deprecation, new bug, or changes in behaviour released in any update. This makes it pretty hard to maintain over time.
I can't speak for Unity, but Unreal Engine gives you full source and lets you pick the version you are working with, all the way back to 4.0, so situation you are describing is impossible.
But as guy getting asked once a week "why X and not Y" in my projects, I'll do no convincing to either. Writing your own engine for lulz is reason valid enough.