Thanks again for the replies. Always good to hear other people's opinions.
Sorry I misinterpreted what you were saying the first time. I would agree that UE4's code is over-engineered but I suppose the programmer suffers so the content creators have an easier time.
I agree that most existing AAA devs won't move to third party engines in the foreseeable future. However, there are so many indie start ups using third party engines. Most of these indies will fail but some will succeed and grow into teams capable of making AAA games and they will likely continue to use the same technology. I therefore can't see engines like Unity and UE4 going anywhere. The barrier to entry is very low and so many teams are using them. For indie developers that plan to make big games, there really isn't much of a choice but to use third party engines. To make AAA quality tools that are stable would take too long. In my case, I have a full time job as a programmer but not in the games industry unfortunately. I can only dedicate 10 hours a week to work on game part time. There are many virtual teams made up of people in similar circumstances and third party engines really come in useful in these situations. Knowing how to write gameplay code in Unity or UE4 presents a lot of opportunities for joining other teams using these engines. Its also easy to carry gameplay code from one game over to another.