Your observations are correct I'd say.
An item has a single 'playrate' setting (adjustable e.g. in Item properties -> Playback rate) which applies to the entire item, meaning there's no automatic 'dynamic' playrate adjustment over tempo changes.
As you say you can get something similar (different play speeds at different portions of an item) using stretch markers or split the item in snippets so that each snippet gets its own different playrate.
As far as practical approaches (scripts, custom actions) for this, I don't know as I rarely deal with tempo changes myself tbh, so hopefully someone else has some ideas.
Or you may ask in the scripts forum:
https://forum.cockos.com/forumdisplay.php?f=3