Isn't it better to start with the mbed though(if you intend for a commercial product, at least at kickstarter/~20K-units level) ?
The quality of the libraries is higher(written by professionals), you have a wider selection of supported mcu's if you'd need to port, some mcu's support the mbed, easy to-use low-power api(an event driven framework that automatically puts the mcu to sleep when it isn't needed), ARM has put a lot of work in the security of the device and that's something that's very hard to replicate.
And like the arduino, if something isn't optimal - you can always write your own.
The only major drawback is the mbed is a bit more complex. For example, you need to use pointers, unlike the Arduino, where it's not a necessity.