The RimWorld modding system is already fantastic, but there are some tweaks that would make it even more powerful.
Since C# is not a language that permits monkey patching, the most helpful change would be to mark more methods as virtual and more variables as public. I had to do a pretty hacky thing here to get around the fact that the Drafter class can't be overridden:
https://github.com/mispy/Mechatronics/blob/master/Source/Mecha_Pawn.cs#L83Of course, there's a bit of a tradeoff there between availability to modders and maintaining good structure of the game code. It's also possible there's another way to achieve the same thing that I'm unaware of.
Also, for the sake of mod compatibility, it'd be nice if recipes attached themselves to buildings rather than having buildings list their recipes. This would prevent conflicts between two mods that add recipes to the same building. For example, instead of:
<ThingDef ParentName="BuildingBase">
<DefName>TableMachining</DefName>
<recipes>
<li>ButcherCorpseMechanoid</li>
</recipes>
</ThingDef>
Use:
<RecipeDef>
<defName>ButcherCorpseMechanoid</defName>
<buildings>
<li>TableMachining</li>
</buildings>
</RecipeDef>
Though again there may be a better way to achieve the same thing.