With E3.x, the handlers were in a flat global namespace, and so the activeWhen expressions were to figure out the most specific handler for the current situation (e.g., active when the activePartId = xxx).
With E4.x, handlers can be installed on parts, windows, as well as globally on the MApplication. Handler look up starts from the active part and proceeds upwards. So many of the uses for the activeWhen expressions disappeared.
Personally, I'm not too saddened to see the disappearance of lazy instantiation -- it's caused my projects more trouble than it's saved. But I can see the usefulness of supporting enablement expressions: they allow reusing the same handler implementation in other circumstances.