If I had to guess what happened it's that the Niners told Spencer they would not be paying him 3+M next year, but told him what they would be willing to pay.
They then grant him permission to seek a trade, which allows him to negotiate contracts with other teams. If he can find a better deal elsewhere, he'll be released. If he can't, he likely takes the new contract with SF.
They then grant him permission to seek a trade, which allows him to negotiate contracts with other teams. If he can find a better deal elsewhere, he'll be released. If he can't, he likely takes the new contract with SF.