I was testing the despawn timer on arrows to figure out how it works as it felt random. From what I can tell, individual arrows do not have any reasonable despawn timer (15min+ and still up), but instead the timer is triggered by using (walking over) the latest arrow that has spawned for that type (lightning triggers other lightning arrows, fire triggers other fire arrows and earth triggers earth).

So basically, if you use the latest lightning arrow it will force all of the remaining lightning arrows to despawn in ~3 seconds. However, using any "older" arrow of that type will not trigger the despawn timer on remaining. (Same applies to fire and eath arrows)

In general it is not a problem as you can just use up arrows every 2nd round or so, however, if you want to optimize their damange, you want to stack them up and pop all during your cooldowns. But sometimes arrow just so happens to spawn too close to you and you use it without intending it leaving you without any other option than using all of the remaining arrows just before the CDs (or in worst case they just disappear since you can't reach them)

So, is this intended or a bug?

I feel it would make more sense if each arrow had reasonable individual timers (30sec/1min/?) or if using any of the arrows (not just the latest) would trigger the despawn timer on remaining. As, the way it is now, it feels like a mess since there's no reliable way to tell how arrows will behave and how you need to respond (you can't always tell which arrows are the new ones)