Verizon, as all other cellular companies, has moved away from the subsidized phone model. Free phones were never free, but you ended up paying the full price of the phone and then some through hidden charges included in your monthly bill. That is why you now see $40 access fee if you are on contract, and only $20 if you are not on contract. The $20 is going to pay for the free or reduced cost phone -- That is $480 over 2 year contract - not really free.
Depending what plan you are on, you may still be able to get a subsidized phone on contract. However, price out your total costs over 2 years as the contract options, even though the phone appears cheaper, usually end up more expensive than the device payment plans.