The free-agent losses of Mike Iupati, Michael Crabtree and the 49ers’ two starting cornerbacks from a year ago were expected.
After all, the 49ers’ track record is if one of their players hits the open market, that player is as good as gone. Recent history suggests the 49ers do not get into the bidding wars for players that come when a player is eligible to begin negotiating with other teams.
But the unexpected losses -- well, three of four were unexpected, anyway -- due to retirements probably were not accounted for on the 49ers’ three-year roster plan.