Great question. I've made a little bit of money making Authorize.net's AIM API easier to use in .NET: http://sharpauthorize.com
Now, authorize.net could replace their aim API with an easier to use soap one, and that might put me out of business - doubt it, because there are lots of free competitors already and I still do pretty well.
It's strange that they haven't added a SOAP interface tot he AIM API yet since they have it for both ARB and CIM. I didn't know about SharpAuthorize. I know there are a lot of half-baked .NET implementations for Authorize.net (and I've written a few myself) but I might use this for an upcoming project to save some time.