Afaik:
"fast compile" Compiles only, but does not link. Linking takes quite some time, skipping it means you get no executable, but you can test that you code compiles.
Normal build, compiles (and links) only units that need to be compiled. That is units that were changed, or depend on changed units.
"Build All", forces all units to be compiled (and linked).
That refers to units in your project. Units in packages used, are only compiled if changed, orr depend on changed units (afaik)