(killbill.io co-founder here). Building a billing system is indeed quite complex, and for a variety of reasons: For once thing, most departments within the company will be impacted (finance, accounting, product, engineering, legal, ...), so the cognitive load on the team building the solution is quite high, and requirements are usually poorly defined. Then, as mentioned in the comments above, there are tons of complicated use cases and edge cases (time zones, pro-rations, entitlement v.s. billing, in-arrear/in-advance models, usage-based, credits, coupons, tax integration, refunds, chargebacks, and on and on ...). Another aspect is that once you have built the billing system, this is just one part of a bigger quote-to-cash picture, and the solution needs to fit within the rest of such platform, so it needs to be made flexible enough to integrate with such systems. I would typically not recommend building your own unless you have acquired lots of knowledge over the years, and have a motivated team in place to execute on it.
perverse: adjective (of a person or their actions) showing a deliberate and obstinate desire to behave in a way that is unreasonable or unacceptable, often in spite of the consequences.
Perhaps "ironic" would be a better word. :-)
ironic: adjective, happening in the opposite way to what is expected, and typically causing wry amusement because of this.
Kill Bill can 'talk' to payment gateways but can also go straight to payment processors, providing the plugin has been written (and we are working on that).