RELEVANT STORY:
I had proposed this when I was working on the champion select redesign on PC, but my initial design was a bit too complex (you could trade positions and champions) so we shelved it. I moved to WR not long after and seeded the idea with our designers working on champion select on WR. They did a great job of simplifying it and making sensible limits so it was shippable. It's always been our hope that we could experiment with some new features in WR that were riskier on League and inspire some changes if players enjoyed those features on WR.
You might ask... why you be dumb and not just do this on League PC first? The answer is not actually spaghetti code. It's really more about the opportunity you have when rebuilding the game from scratch for a new audience. When we are looking at features we often use a value/cost lens. You want to do stuff that has a high value to cost ratio. Consider this pick order features:
On PC you have a champion trade feature already and let's value it at 1.0 to simplify things. Cost is 0.0 because we already have the feature. We think that position trade might be a 1.5 value feature and we would replace the champion trade giving a net 0.5 value, but we have to rebuild the trade function so the cost is 1.0. So to get 0.5 more value than the status quo you need to spend 1.0 dev cost == 0.5 value/cost ratio
On WR we have no trade feature of any kind. So we can either build the League PC equivalent champion trade with a value of 1.0 and a cost of 1.0. OR we can build a position trade feature with a value of 1.5 and a cost of 1.0
Build champion trade == 1.0 value/cost ratio
Build position trade == 1.5 value/cost ratio
This is obviously an artificially simple example with made up numbers, but hopefully it illustrates how we had different tradeoffs for WR than League PC and could make different choices to maximize player value. On PC where a position trade feature might deliver 0.5 new value/cost, you have to compete against a lot of new features that have a more favorable value/cost. On WR we had to make some kind of trade function from scratch, and updating to position trade didn't cost any more.