The two most obvious areas to explore are wiring and context class loading.
If the wiring is different after dm Server restarts, you could investigate this by using the Equinox console. Start by exploring the wiring of the package of the class which eventually fails to load and see which bundles import and export that package. Compare this wiring in the successful situation and after the restart. (In general, the wiring should be identical after a restart unless the set of available bundles has changed.)
For context class loading, you'd either need to write a bit of code to dump out the TCCL or use a debugger to stop at an appropriate point.
Alternatively, if you prefer, please reproduce the behaviour with a simple testcase on 1.0.2 and raise a JIRA to go on our backlog.