I tested with compiling a dll, and it doesn't seem to define that. Are you sure you are not confused with some third party define?
Hum, let me show a example that is working for me.
It is used by the uos project. => That project let you use uos.pas as "traditional" unit, usable for fpc developers, for their programs.
But a other part of the project is to create a library.
In the main uos.pas unit, there are some :
{$IF DEFINED(Library)}
...// do something..
{$else}
..// do other thing...
{$endif}=> So the compiler knows if the main project is a "traditional" program or a library.
And i would have (sorry, im a big curious) a list of all the symbols used by fpc ( => to avoid to use a
{$DEFINE something} already pre-defined by fpc or Lazarus...
Fre;D