This topic was discussed at length here.
http://thefiringline.com/forums/showthread.php?t=455180
Here's my take on the issue.
It is NOT a federal crime for an 18- to 20-year-old to possess ammo for a handgun.
It is NOT a federal crime for an unlicensed person 21 and over to give ammo to an 18- to 20-year-old for use in a handgun (assuming neither party is prohibited by law from possessing it, for some other reason).
It IS a federal crime for a FFL to sell an 18- to 20-year-old ammo
that the FFL reasonably believes will be used in a handgun. Note, however, that the crime is committed by the FFL; it is legal for the recipient to possess the ammo.
It IS a federal crime for a FFL to deliver ammo to a straw buyer
whom the FFL reasonably believes will deliver the ammo to an 18- to 20-year-old for use in a handgun. However, once again, the crime is committed by the FFL; it is legal for the recipient to possess the ammo.
It IS a federal crime for an 18- to 20-year-old to lie
when asked if the ammo will be used in a handgun.
It IS a federal crime for a straw buyer to lie
when asked if he or she intends to deliver the ammo to an 18- to 20-year-old for use in a handgun.
The critical key underlying all this: it is NOT a federal crime for the FFL
to fail to ask how and/or by whom the ammo will be used. (There is no legally-required "are you the actual buyer?" question like when you purchase a firearm.)
IOW this is a de facto "Don't Ask, Don't Tell" policy. If nobody asks questions and nobody lies in answering them, no federal crime is committed by anyone.
OTOH if the recipient is
under 18, giving him or her a handgun or ammo for it is only legal under certain circumstances spelled out in 18 USC 922(x), and pretty much everyone involved in the transfer can be held criminally liable.