Not to escalate this discussion further (having a long tradition) - it is your choice either to run (more or less) the development image or to clearly separate everything which is not to be included, hm, hence to carry the burden, to package.
Packaging in its nature is aggressive. It is a final decision if something is to be included or not.
Alpha or Beta errors (in the statistical science sense) have to be avoided at all circumstances because of the dangeous consequenses.
In some situations, you are forced to package and then you depend on its rigourous stability.
I recently was in need to create and run a (tiny) Smalltalk program without GUI (aka headless, an equivalent to old C style Unix programs, command with arguments, pipes, redirections etc, under Windows).
The only way to produce such a Smalltalk program is XP packaging. This adanced critical form of packaging even does not allow you to load certain things of the development in the image to be packaged, despite of even being able to execute
s.th. in it. The material to be packaged must be clean in a clinical sense.
This is a counter example against the argument of having plenty memory abound: if your material has to cross OS boundaries, you must package.
Currently almost everybody is forced to do so when producing
s.th. for another target platform, as the well established conveniences of the current development environment do not exist elsewhere than under Windows.
May be that this will become enhanced in the near future after modernizing the more or less antique original XMotif infrastructure (under Linux) I occasionally use. Developement here is announced and underway, I hope.
I definitely cannot imagine to produce my stuff (running 2-3 high resolution screens) on a Raspberry Pi, because of complexity (of the required resources, not because of their size).
Personally, I depend also on the ability to see as many things as possible, hence my visual resolution is currently a triple of monitors, having 2 * 4K plus a 2.5K on the laptop, my personal wide screen development cinema.
Another essential argument is operational cost, which is significantly reduced as implication of having packaged.
I remember one migration project where the daily production workload was processed using 20 servers a 250MB, double CPU, under the rule of a mainframe.
The migrated 1-1 Java replacement finally required 30 servers a 750MB, and the host has to be upgraded.
The operation cost initially grew tenfold. Initially
that turned out as an economic desaster.
The reason of that was the lack of packaging, as the replacement could not extract the essence.
However, the hope was to make use of the benefits of the (then) new Java environments and bypassing, the painstaking packaging process, so to reduce significantly the development costs.
Another argument pro packaging: grown vulnerability of the result because of not having removed unnessary things (e.g. all apps run at least their initialisation code when being loaded, no matter if they are actually required to run or not).
In general it is your choice to package
s.th. or not, but when providing a framework application as deliverable, you have no such choice:
to be useful, it must be able to be packaged.
I am going to inspect the CGImageSupport application, to understand its underlying problem it had to tackle.
Obviously the current solution is not stable in the sense of the observed packager complaints.
As I already mentioned, I found some special support in the packager which had to assist in here, which I do not understand yet.
That gives me an initial hint: an OS specific class hierarchy providing the functionality, which ought to be totally different in other platforms, but has to be packaged equal. The protocol is targetting class references and providing replacments. This an atypical package problem, I personally never had before - I usually hide such problems behind factory patterns.
Finally, this is not be misunderstood as my critic to current XMotif implementation or making use of Raspberry or even Java.
Sometimes architectural decisions have widespread consequences:
Smalltalk (or any other integrated development) has to bear the burdon of packaging (or similar production steps) because of the benefit of that integrated development.
Whenever I work in other non-integrated languages, latest when debugging, I occasionally desiderate to run some code snippet integrated, to inspect
s.th.