That is not the problem of the 106 packages.
There are two reasons for that: the feed build used to build the image again due to a dependency, and some TUNE_ARCH packages had dependencies on MACHINE_ARCH packages, causing them to be build multiple timers per TUNE_ARCH, which in turn caused the PR of the package in the image to be lower than the package in the feed. So opkg sees it as new, while they are binary the same.
The issue with incomplete updates is a massive shortcoming in opkg. If you do a simple "opkg upgrade" (which is what enigma does behind the scenes as well), it runs the pre- and post scripts of the packages out of sync. Which is especially a disaster if busybox is amongst the machines to update, as when it is removed for update, all linux commands are removed too (as they symlink into busybox), and after that, all scripts fail.
It would be great if we could switch to rpm (and systemd) for OpenPLi 9 or 10, so are don't have these issues anymore.
Honestly in this case the issue are the feeds and not opkg itself.
Remember the other package managers are much more heavy in term of size.
About systemd, well, people up in the linux chain decided it is the future, nevertheless sysvinit will remain for long in OE.
Cheers
A.A.