From my point of view, the Ubuntu might have some problems for distribution as:
* if you change binary packages you break upgrade process so you cannot upgrade any package in Ubuntu or you risk it to override "binary hacks" in the system (file override, force new links or something like that);
* change binary files makes a GPL violation as you won't be able to provide the binary source for these;
* it makes a nightmare for mmaintenance as any change in system can break it completely.
Another possible problem is the presence of GPLv3 code in the system. As I don't know what is the product you're doing it might or not be important but bear on mind that GPLv3 has some implications for patents and also makes impossible to use cryptography in bootloader (except if you give the bootloader the possibility to add new keys so user can replace the kernel - commonly known as Tivoization). In case of Yocto, you can make a GPLv2 only system avoiding those "legal problems" for you, if it is a concern.
At O.S. Systems we usually do not use Ubuntu for embedded systems due the license issues (as pointed above), boot speed and memory use so I am not a big fan of its use for products in this specific market. So for a demo or a prototype Ubuntu is a good option but for a customized product I’d use Yocto.