Test core/25a_essential.py shows the problem. Basically, when the --force-removal-of-dependent-packages flag is used, the solver should fail if the dependency chain hits an essential package.