One thing to keep in mind is dependency from 3rd party. Having separate file allow you to easily and universally update those 3rd party file, even without an official update from the main developer.
Also, those 3rd party may be shared across multiple software. So sometimes those 3rd party are installed once (outside your software).
Latest Answers