What are interesting parts of the Bitcoin Core codebase?

I find the most interesting parts are in validation.cpp. In particular, the re-org logic and rolling back ConectBlock/DisconnectBlock, AcceptBlock, AcceptBlockHeader.

There are several interesting cases around DoS preventions in mempool related functions. Basically, what happens when there is new block in validation.cpp. There is also an integration test in python feature_block.py that tests lots of interesting scenarios hitting codepaths in validation.cpp.

Second, interpreter.cpp and scripting engine. miniscript.cpp is also is an interesting dive in itself.