Using Atmel Software Framework
I think the question is why is a third party library supplied as source code rather than a pre-compiled object file to be treated as a black box.

Consider the compiler options that affect how code that makes calls to the library functions and handles returns from library functions is built.  Are there compiler options that affect, for example:


Argument passing conventions (are arguments passed on the stack or in registers or a combination)
Endianess (some ARM cores are configurable as either big or little endian...not sure about the SAM4S)


If the same options are not used on both sides of the interface the program will fail.

Consider also that the source code from Atmel is used on several platforms including not only a variety of microcontrollers with ARM cores but also their AVR product line.  How many different versions of pre-compiled static libraries would have to exist to cover the combinations of compiler options and microcontroller targets?  The number of object files required to cover all of these permutations would simply be unmanageable.

I have to admit I'm a little unclear on how checking out a pre-compiled object file from a version control system is "cleaner" than checking out source files.  If checking out only one pre-compiled object file versus checking out several source files is the concern, consider organizing the files such that the library source files are located in a well named sub-directory of their own.  This doesn't reduce the number of files but may help with the clean/organizational aspect.