I'm afraid Bitcoin still requires 2-3 hard forks until we get to a point of maturity where it's no longer required.
In terms of scaling alone, no single number for base block size will be ideal for eternity. To avoid having to fork multiple times in the future for this single reason, liquidating the block size with a BIP100-like solution would be a mandatory first hard fork to implement.
Did you check SegWit code? I don't understand much of it, do not program c++, but I can tell that monstrosity is HUGE for a soft fork

. Just for safety reasons alone, it would make sense to attempt to trim 40% of code and release the exact same functionality as a kosher clean hard fork.