Firstly, so we're on the same page, this is how smurfs are currently handled (I could be wrong, but I'm pretty sure): New accounts all start at level 1, with the same very low MMR (I think we agree this is a problem). Then, smurfs should win very easily their first few games. There is a system to detect this. Accounts that are stomping their first games are put on a fast track to higher MMR. Pretty quickly, (let's say by lvl 10), most smurfs have been identified by the system, their MMR has been raised drastically, and they should be playing with only other smurfs (or really good newbies).
So on to your solution. I think you have a really good idea of what the problems with smurfing are, as well as the benefits (the reasons people do it). And I think your solution is on the right track - let people smurf, but make the skill difference of new accounts less stupidly skewed. But the thing that curates skill differences isn't level; it's MMR. And the problem is most severe during those first few games when every new account's MMR is the same.
Therefore, I think your solution would be better if these "legit" Smurfs also recieved a starting MMR that is based on their main account's MMR. (I like the "less grinding time" thing, so this would be in addition to the level 20 start.) It would probably be best if this new starting MMR were a bit lower than the main account's (like the soft reset at the beginning of ranked seasons), because people usually smurf to goof around or play with their less-skilled friends. That is, not many people play their best while smurfing, so their smurf MMR should be lower.
Now, there are still other problems with smurfing. For instance, people making a new account, playing like trash on purpose up to lvl 30, then using it to boost their friends in ranked. But your solution at least solves somes of the problems with the more benign smurfs. I like it. I really hope Riot takes note of this thread.
[slayer-jinx-catface]
Oh and sorry for all the parentheses, it's just how I think.