It's 4 years when you played for another country before and 2 years if you didn't (Like Dalton), you're right.
I don't know,I mean players who would allow to make South Korea a team who'd be able to compete (successfully) at the world championship wouldn't play in Asia for 2 years, so I think the rule is quite ok. And for players like Paul DiPietro who married a Swiss girl and settled here it shouldn't be more than 4 years.
In the meantime Italy won againts Japan 3-1. Looking bad for Japan, now.
I have absolutly nothing against naturalising a player if he has been living in the country for long enough, like DiPietro.
Also, if you are born as a dual citizen, I am ok with you playing for either team, regardless of you playing in the country or not. But in that case, I would not allow players to switch team. For example, if you are an Italian-Canadian dual citizen and you played in Canada U18, I would not allow you play for the Italian senior when you figure out that you are not good enough for the Canadian one. In that case you would have to play in Italy for a certain amount of time, before you are eligible and for sure, if you have been playing in a senior NT i would not let you switch.
On the other side, if you actively decide that you want to play for your grandfather nation, you have the citizenship and you commit to it, then welcome to the team, buddy. It's a choice you take knowing that you would not be allowed to go back if you all of a sudden turn into a top player.
Hope I made my idea clear, not sure that my english is good enough to explain mysef properly.