CPQ can store pricing information when users accept a proposal or some other event occurs, as per client requirement. CPQ can retrieve the same pricing information when the same user creates a proposal for the second time or updates the same price list in case of agreement amendment. Many customers prefer old pricing during renewals or amendments.
When the user creates a quote with Intent = Price Agreement, finalizes the quote, and accepts it, CPQ automatically creates a contract price list with the products from the quote, according to the prices negotiated in the quote. The contract price list is a subset of the standard price list. CPQ assigns a contract number to the new price list generated. The user can then use the contract number and pass it to the future quotes for using the contract pricing feature. The prices in the new quote will be retrieved from contract price list and those prices are the negotiated prices of the original quote.
For more information, refer to "Creating Quote/Proposals from Opportunities" in CPQ on Salesforce Summer 2020 User Guide.