...<snip>...
My understanding was that BrowseTracker would keep track of the fact that main.cpp was opened to line 47 and return to that the next time I opened main.cpp (even after closing and re-opening the project). Perhaps I missunderstood the intent of BrowseTracker?
Correct, that is a misunderstanding.
It is CodeBlocks' "layout" processing that repositions files on reopen. The reason it's not repositioning for you now is that you are closing the file before closing the project.
If you leave the file open, but just close the project, "layout" will reposition the file as you left it.
However, you could set a BrowseMark at a line, then close the file.
On reopen, Browsetracker will be able to reposition to the BrowseMark with Alt-Up/Down.
Also, your "misunderstanding" presents a good idea. I'll think on it.