Ok , 3cx works but my problem with it is that is runs on Windows OS , im far more worried about the Windows OS than the great performance of the 3cx , if you go that route it will need a dedicated server , DON'T even think you can run it in the background on a user PC ! As for MyPBX , its a Yearstar product , entry level , cheap , Asterisk based unit . Many people ok with this .
With regards to hosing , i will always push this for the micro SME , up to around 25 users , you get enterprise PBX functionality available to small users , never have to upgrade , limitless expansion and only hardware on site is a bunch of IP phones and a POE switch !
To me its an easy call , small users should go hosted !