Hi gilesy...
what do you think, is this normal db behavior?
is it even possible to code a fix for this?
That's normal DB behavior - it will only ever loot things if;
A: It can currently loot (eg there isn't a mob in range it wants to attack, or DB isn't busy doing another action)
and B: It's in loot radius range.
The loot targeter won't scan for objects outside of whatever the current loot radius range is to help keep it less laggy (imagine if it constantly scanned everything 100 feet out and passed all that data back to be processed each time!), but also to help avoid stucks (let the profile/routine creators control all the ranges at different points of a routine, so your bot doesn't go too far off track to try to loot something and end up getting stuck).
This means with bad luck loot can drop somewhere, you can continue chasing a monster, and after killing it - that loot never comes into your radius again when you are "free" to loot.
The only viable way I can see of fixing this (or at least severely reducing the problem) is by changing the core combat behavior tree of DemonBuddy, and adding in the capacity to loot items/click shrines if they are within XXX range of your bot, regardless of being in combat. I don't know how badly this will affect the combat abilities of your bot though, but it's an idea somewhere on my own personal "to-do list" to try out (I may never get around to it, or I may try it out and find combat just goes horrible

).
Alternatively, and a much harder thing to implement (I think), would be able to go backwards through the path it ook if it "remembered" missing loot until it found it, but this would have it's own problems, and isn't currently possible.