Are Assembly definition files are not build system files?

I spend few days to understand how work assembly definition but one thing is not clear.

In documentation I have fragment:
_

Assembly definition files are not build system files

Note: The assembly definition files are not assembly build files. They do not support conditional build rules typically found in build systems.

This is also the reason why the assembly definition files do not support setting of preprocessor directives (defines), as those are static at all times.
_
I do tests.

1st - I marked Assembly Definition file platform only for android.
113830-android-platform.png
And I checked is there assembly in Library-> ScriptAssemlies folder. There is no dll.

2nd - I add in script preprocessor directives. And I opened dll from Library-> ScriptAssemlies folder with IL spy.
Preprocessor directives work.
113831-preprocessor.png

For me assembly definition support conditional build rules.
_
My question is what mean that part of documentation? My test are wrong? Could somebody suggest some tests how to check and show this.

@lukaszunity

This is also the reason why the
assembly definition files do not
support setting of preprocessor
directives (defines), as those are
static at all times.

They just wanted to say that assembly definition files do basically just group scripts inside a folder into a seperate assembly. Of course all preprocessor directives work just the same way as if you didn’t have those assembly definition files.

In a true build system usually support much more configuration options for each “thing” you build. Classical makefiles which are often used for C / C++ project allow to specify certain rules when a certain object / library has to be recompiled. This is mainly required for languages like C++ where the code is compiled seperately and linked seperately. If something has changed where others may depend on means they have to be recompiled as well.

Assembly definition files do not support any of those fancy build rules. They basically just run the compiler several times with (almost) the same options and just group the corresponding files into seperate assemblies. The only options that are different are the assembly references between those different assemblies. The main point of assembly definition files is to cut down compilation time by letting you group your files in logical chunks. Since each chunk is compiled seperately Unity doesn’t need to recompile all scripts whenever you change one of them. Only the assembly that contains the changed file need to be recompiled.