Is FreeRTOS ever linked into a library, or is it just usually built and linked along with the rest of the project?
Normally linked with the rest of the project, but I don’t see why it can’t be a library. This proves it
The main reason it isn’t done as a library is that a number of the options if FreeRTOSConfig.h affect the generation of the code of the kernel. You can enable/disable a number of features and define the sizes of several items (number of priority levels for example). You could probably fix most of these items (enable all the features you think you might ever need and define “enough” levels for your tasks and be able to build a library, at the cost of increase code and data size for the features you didn’t need in a given project.
You would also lose some of the debug features that are enable with macros that add debug code into the kernel.