The inbound and outbound call rule system is vastly superior to FreePBX, enabling functionality typical of old school PBX systems, like: Match number according to this rule, strip the first x digits, append y digits, to generate a new number. In FreePBX (unless something has changed recently) you need a rule for every DID, which is a pain in the ass. With Switchvox, I can create a ranged rule that handles an entire block of DIDs. (My FreePBX experience is based on managing an Elastix system in our NYC office, which I peer to Switchvox via IAX2.)
Then there is the ability to join CallerID rules to inbound or outbound rules, with similar pattern matching. The Switchboard system is amazing. The IVR system is the most flexible I've seen in a GUI. It too is insanely flexible once you use it.
Yes of course we could migrate to FreePBX, but with a far higher administrative load, far fewer end-user features, etc.
I inherited a Shoretel system I have just had ‘upgraded’ to Mitel support, just so I can get a quote for additional licenses.
3CX has very straightforward pricing, and is quite simple to configure with the numerous SIP providers in the market.