This is why there is no work on a packages system for FPC: there are
simply too much different versions around. While Delphi has at most one
release per year, FPC/Lazarus has more or less every day a new version.
Well, but not that much stable releases, I suppose. :) I am sure that Delphi has/had quite a few internal versions too...
A package compiled for FPC/Lazarus built from todays sources will mostly
not work with a program compiled from yesterday sources.
Even if you divide up your code into packages (Delphi ones), you are not forced to compile with packages 'enabled'. Hence daily builds can stay perfectly static as is. However, you'd gain the option for stable releases to have modules. Said that, within open source, packages are probably less useful than in the commercial-closed source world.
If you want a plugin system, you should create a defined API for this
plugin system but not depend on the moving target of packages.
I tried that once with Delphi/VCL (and mdi-child forms): It was horrible to maintain and utterly difficult to debug. Packages just let you use classes (forms etc.) from within dlls so much more easily. Besides, you can still do your own API on top of packages ;-)
The use of packages for FPC is simply much less than for Delphi.
This is probably true. However, from an end-user's perspective, I would not say that I do a fpc/lazarus re-build every day. I'd rather stick with some stable version and concentrate my own (application) code.
But I guess, my main motivation on this is "fun on hacking a compiler feature" ;-)
Cheers,
Willi