I think some quality-of-life features would be nice. Their absence isn't a deal breaker, but they would be convenient.
Watching and editing the contents of a list while debugging. I'm aware it's possible to use "stringlist.FList^[0].FSTRING" on the watch, but it would be more intuitive, especially for lazarus newcomers, if you could just type stringlist[0] to access the item value, just like you do in the source code.
Also, when you see content of a stringlist using FList^, the value is shown as something like "ANSISTRING($00000001003ADC20) '1'", instead of just showing "1".
In the evaluate/modify window, there's a field where you can input a new value to the variable you're watching, but it often doesn't work and it doesnt say the reason it doesnt work. With lists or normal variables, I usually can't their values while debugging.
Watching the variables of objects. Both in the watches, and also when I hover my mouse over the source code. For example, supposing I have a TEdit called edit1, it would be convenient if I could access the content of edit1.text using a watch; or when hovering over a "edit1.text" written somewhere in the source code, just to quickly check what's inside. That already works very well with variables, but not with classes.