long time ago, there was an effect with zeo setup and installed packages. the zeo server should also include all packages, like the clients, to prevent transaction errors, i hope my memories are right.
my question, nowday, in a docker container setup with a zeoserver and some clients, is this rule still valid and should be followed?
What I recall is that it is only necessary to have the code in the ZEO server for classes that have custom conflict resolution code, which is rare. (for example BTrees or the container for plone.namedfile image scales)
And if the code is missing, I guess the consequence is just that the optimized conflict resolution won't be used and the entire request would need to be retried in case of a ConflictError, just like normal for other objects.
So unless you have a high-traffic site with lots of conflict errors, I doubt it matters very much.