Yes, internally, DF works about the same (for the most part).
Regarding DFHack, persistent storage itself hasn't changed much, but the way plugins and scripts keep state has changed a bit. There is a much stronger push for tools to persist the state that players set while playing. The rallying cry is "initless", since the idea is to allow players to use DFHack tools effectively with zero init file editing (though init files still work if that's how the player wants to do things). As part of this effort, scripts have gained a way to automatically re-enable themselves according to their saved state. Before, a player would have to explicitly run a script (either manually or from an init file) before the script would have a chance to check any saved state. This prevented scripts from automatically reloading their state and continuing where they left off.
Now, scripts have a standard way to load state and set hooks at DF startup like plugins have always enjoyed:
https://docs.dfhack.org/en/latest/docs/dev/Lua%20API.html#enabling-and-disabling-scriptsIn UI news, the DFHack widget library is getting an overhaul. Two overhauls, actually. The current widget library is getting a lot more mouse support, like dragging, resizing, and being able to scroll the widget under the mouse cursor with the mouse wheel.
We're also working on an entirely new widget API that will allow much more "professional" UIs. This is still in the experimental phase, but it's coming along nicely.
Another big advancement is the DFHack overlay, which allows you to easily inject information and functionality into existing viewscreens. See
https://docs.dfhack.org/en/latest/docs/dev/overlay-dev-guide.htmlSo, fun times ahead for modders : )