You are thinking in programmer terms rather than user terms. The way a system is implemented is of no concern for the user, and users are typically completely unaware of whether a page was reloaded or simply update by AJAX.
What you should account for is the mental model of users - if the interface appears as if it moved forward one step, most users would expect the back button to take them to them a step back.
Bare in mind that any other choice for the back button might be completely arbitrary - from a user point of view, why would the back button take you to the beginning of the checkout process and not the product page you came from? How can you tell where users would like to go to when pressing the back button? Back to previous step is the only obvious option here, more so in a checkout wizard.
There are a multitude of applications out there which make usage of ajax to load parts of the page (The source browsing in GitHub is one famous example), all use the back button to go one screen back (even if the header, footer, and other content area have not been refreshed at all).