A major version change in OH is an opportunity to making breaking changes. In this case the big change is the move from the soon to be no longer supported Java 11 to Java 17. But because breaking changes are more acceptable at these times, changes that have been piling up since the previous release get made as well. Sometimes these are directed at add-on developers, other times at end users.
Most of the end user facing changes include:
New add-ons (add-ons are not back ported to previous versions of OH)
continued development of add-ons (only in exceptionally rare circumstances are changes back ported to the previous version, usually only for severe security problems or because of an external change that completely breaks things)
Transformations: can now be defined through the UI, written in any installed rules language, Profiles now support a separate SCRIPT transform depending on the direction of the update/command, inline transformation SCRIPTS are supported in any language
Items: Separation of display and Item state definition of units which leads to a more consistent treatment of units everywhere in OH (Persistence, rules, REST API), MainUI now shows custom Item metadata, MainUI will support a “Code” tab for Items, new ItemStateUpdatedEvent and GroupStateUpdatedEvent are unit aware
Blockly: now “compiles” to GraalVM JS Scripting using the helper library making the generated code much simpler and easier to read/understand, lots of new blocks
Developer Sidebar: Now supports a much more thorough search; e.g. you can find everywhere and Item is referenced
Logging: the log level for individual add-ons can be changed through MainUI
Persistence: Hopefully will also become configurable through MainUI
That’s a short list off the top of my head.
More is being added almost every day. OH 4 is probably not going to be as drastic of a change as there was between 1.x and 2.x (2 introduced the REST API, Things, and admin UI, whole new API for add-ons, etc.) and what was between 2.x and 3.x (dropped support for 1.x style add-ons, new admin and end user UI in MainUI, direct first class support for other programming languages beyond Rule DSL, etc.). In comparison, OH 3 to OH 4 is more of a refinement of OH 3 and the breaking changes are less drastic.