I don't like the flag for hire stuff and I don't like how rugby does things, but I don't think that solution is right. Asking an 18 year old to choose a country
immediately is something massive for their future, and they might not even know which ones they are eligible at that point! Identity isn't exactly binary either, a lot of people can feel like they are two identites - you're asking someone very young to commit to something which is pretty complex for some people.
If an player committed to England but he is a bog standard Championship player (or worse), he will have committed to us at 18 and never play for his country. If he had a parent from another of the British teams or perhaps the Caribbean and Africa and wanted to play for them later on in their career - seems fair enough to me. That is something which can benefit the 'smaller' nations, and there's a fair few players who have done it - off the top of my head I can think of Sako, Boly, Afobe as a few Wolves players who switched allegiances to get into international football.
The current ruling doesn't exclusively benefit the big countries, some of the smaller countries can be very predatory in giving teenagers first-team caps in order to tie them down.
The main thing I dislike is players who moved to a country for footballing reasons, becoming naturalised after X years and then playing. That is very fake, and thankfully the Home Nations all don't do it for other reasons. I remember when there was noise about us trying to get Januzaj which was weird, and if I remember there were rumours about Almunia playing for England at one point.