There are projects, where you want to create an application,
that is extensible by other parties without access to the sources iteself
or re-compiling the whole binary. This concept is known as modules, plugins or features nowadays.
This might be the case if you are creating a client application (e.g. to implement scripting functionality),
but also if you want to have your server application extensible by third parties.