Use different projects, if you need
Separated binaries for your solution, so you're flexible in patch/updates preparation and deployment
Possibility to manage plugins
Use of, for example, C++ codes inside your C#.
Reusable components use. The types declared in assemblies can be reused in different applications of your company to provide uniform API.