A 18 year old kid will not be able to "out athlete" players in the NFL like kids may be able to in the NHL, MLB or NBA. These kids would be crushed physically if they were allowed to enter the NFL. For the most part those other athletes are playing college level competition in AAU tounaments or international hockey tournaments to guage what the best may be like. And when/if they could go pro, their contracts were guaranteed. That HS player who was a bust in the NBA at least has a few million in the bank to fall back on.
The difference in physicality is huge and the sole reason no rule should be changed. To a lesser extent, what front court hoops player left HS (when they could) and had success in the NBA? Garnett maybe, but he was not a post player early in his career because he was a string bean and got beat up down low. The guys who made it did not need to bang and get physical with more mature and bigger players. The NFL takes this to another stratesphere when it comes to that.
The NFL is a for profit company looking to get as much money as possible. If they really thought there was talent in HS that would make their product better, they would certainly allow it. What exactly do they get for making a kid they think can make an NFL impact stay out of the league for 3 years. It is only hurting their product if that was the case. That is a NFL rule, not an NCAA rule. Lets be honest and say it is not a rule to protect these kids versus it being established because they know that no HS kid is worthy or making an impact in the NFL. And for that they put rules in place so they don't have to deal with this issue.