Why have a separate pipeline?

This may be a silly question - but why have a separate pipeline at all - why not just (e.g.) allow spritefonts to be created at runtime, and just have a .png file for a texture and load that and convert it as needed?

I can see why, for example, when running on Android an option to pre-compiles stuff might be useful, but for windows desktop, or just while developing.

I imagine something like that must be integrated into the build process inside your IDE, it may be that there aren’t enough Monkgame devs who are well versed at building IDE plugins. Might be an interesting project. I wonder if the new pipeline tool can be embedded as a plugin?

The main purpose of MonoGame is to be cross-platform. The content pipeline converts your source assets from a variety of formats into optimised formats, sometimes with optimisations specific to a platform (eg texture compression formats and audio formats).

Another advantage is that it’s a useful place to pre-process your source data. This can be compression or pre-multiplying alpha or any process, such as pulling all required characters in from your localised resources to build a sprite font that supports all locales (https://msdn.microsoft.com/en-us/library/ff966426.aspx).

I agree with your point that it’s largely unnecessary during development and possibly if you’re just targeting Windows. However the original Xna team was building a product for Xbox and Windows, and they focused their efforts on building a world class content pipeline as opposed to runtime loaders that would result in either less efficient, or slower loading assets on some platforms.