your "facts" are absolutely backwards except for at&t making a change
old practice was to evaluate the account and assign an upgrade date...the more you spend the sooner you can upgrade...for instance if you are the main line on a family plan you can upgrade 366 days (one year and one day) after your previous upgrade...secondary lines can upgrade 18 months after their last upgrade
new practice is to assign a fixed upgrade date 18 months after last contract renewal no matter how much you spend
now this just refers to "standard" upgrades...early upgrades are taken on a case by case basis UNLESS it is an iphone which at&t will let you upgrade early after 6 months of being in your current contract and the price is 2 year upgrade price PLUS $250
I work for at&t btw