If the react compiler is used, 999 of them will return their memoised result. 1 will need to be rendered again.
Which has an overhead but is still a huge gain compared to actually creating vnodes and diffing all render results for all items.
You are right, in case of fine grained reactivity, this could just trigger a render on the specific item. But for that to work, the framework will need to wire up 1000 subscriptions to prop changes, have proxy objects and shit like that. There is a larger initial overhead for that and the memoisation + brute force approach might be better at the end.