As much as I dislike how IntroJucer forces certain things on me (and broken things like forced Link Time Code Generation and missing Debug information in optimized builds), the JUCE module arrangement does get one thing fantastically right. Static libraries are a pain in the ass, and the “unity build” style of source code organization makes them unnecessary.
Its easier to just include a handful of unity .cpp files (like juce_core.cpp) directly in your project than it is to maintain a separate static library project.
The problem with depending on the static library is that you don’t have any control over how it is built. So if you want to re-use a static library between two projects where the static library has different build settings for each project, its not possible.
I still add JUCE and VFLib static library projects to my workspace but I don’t link against them, they are only there for source code browsing. Which is why official support for the JUCE static library project should not be abandoned.
What I would like to see in IntroJucer is to get the bugs that I reported fixed. Like turning off Link Time Code Generation, being able to generate debug symbols in an optimized build. Also, it would be nice to have control over the Folder groups that get created. I’d like to be able to put my own groups directly at the root of the project instead of having them nested as a child of an IntroJucer generated group that has the same name as my project. I’d like to have control over where the Juce LIbrary Code group goes. And I’d also like the option not to generate those ridiculous .cpp files which pretend to be JUCE sources but really just have one #include with a long relative path leading back to the JUCE directory.