If you explicitly call build with the -debug or -release flag (see here), it invokes clean first, as spec'ed.
However, if you do not call it with a particular flag, it will not call clean. See here.
Invocations of build should always invoke clean.