If you're really sure you don't want to use SPWebConfigModification, you could look at SPWebService.ApplyApplicationContentToLocalServer() - this has the capability of merging entire sections into config files, but has the following caveats:
- Only applies to the local server (clue is in the name!)
- Must be called by a local administrator
The combination of these two caveats means you can't use the normal pattern of using a timer job to ensure something executes on all servers in a farm. If you were happy to write say, a windows service which would call this web service, well that would get you round it.
However my recommendation would be to stick with SPWebConfigModifcation. Regardless of how big a custom section is, it's going into the web.config as a child node of a node somewhere so can be added as an 'EnsureChildNode'. It would certainly be possible to combine your merge functionality with SPWebConfigModification (i.e. pass in the merged XML to calls to SPWebConfigModification), and then you can be sure the change will applied across the whole farm. Also, it's easy to write code to remove the changes (e.g. in the Feature Deactivated event if your host code is a Feature receiver).