What is main.cpp for in bitcoind? What does the main.cpp source-code file do? I know what main.cpp files are for in general, but specifically in the case of bitcoin?
It just contains an apparently random collection of functions used by the program. It also declares some global structures such as the main lock, the transaction pool, orphan block tracking, and so on. It contains high-level block and transaction functions. Ironically, it does not contain the actual main function -- that's in init.cpp.