Here’s how I think it should work:
Kids don’t have names. They have nicknames. Nicknames are initially given by their guardians, but they can certainly change and there’s nothing wrong with having more than one.
This name is acknowledged as a temporary name by everyone.
At 18, you go to an office somewhere and tell them your permanent name, and that becomes your legal name. It could be as simple as turning a nickname (like Benji/Benny) into a formal name (you’re now Benjamin AParentLastName or Ben LastnameFromGuyYouLike)
So your friend Speedy might decide at 18 that she’s gonna be Sarah Bolt or Celery Lightning, if she doesn’t want either parent’s lastnames.
Anyway this bypasses one of the main legal hurdles to name changes: people using them to escape debt and such. By making them a name change at the transition from childhood to adulthood, you have a fresh start.
The only issue I see right now (aside from “parents get angry”) is how you do provisional driver’s licenses. You don’t have to be 18 to drive in the US, you can get a temporary learner’s permit to let you learn how to drive before you turn 18. You don’t yet have a legal name to put on your license, though.
(oh and name changes are still allowed, of course)