I see what you're saying. The issue with this is that unlike market conditions, which are part of the core game, these scripts are implemented in a way a mod would do it - that is, they're an implementation of an interface provided by the core. If I were to make them extensible/configurable in this way, I'd basically be saying that this implementation is now part of the interface, and would have to code it to a different standard, in terms of the amount of thought given to its structure and design.
Put another way, it'd be like making the code that generates the Corvus star system extensible - it's pretty simple now, but it would get a lot more complicated.
... for all that, I might have to do that at some point.
I do have a couple of items on my list that should make life a bit easier, though.
1) Going to look at making most of the private methods in FleetEncounterContext/FleetInteractionDialogPluginImpl protected rather than private, so that mods can extend those classes and override a few methods, rather than having to copy-paste the whole thing.
2) Good point about salvage; I'll see if I can add a callback after loot as generated, to give mods a chance to adjust it if needed.
3) Looking at moving out some checks for the pirate faction into properties in the .faction file (not directly related to anything you asked about, but in the same general vein).
As far as merc/pirate fleets, I think it's relatively simple to do what you want by doing the fleet generation yourself... yeah, it's probably a cut-and-paste job of the MercAndPirateFleetManager, but that class isn't super-complicated, or even that lengthy, and it'd be a self-contained change.
You'd need to do SharedData.getData().getMarketsWithoutPatrolSpawn().add(marketId) at game initialization to stop the market from spawning the default fleets, or to manually remove the script from the market's primary entity.