An instance is a copy of another mesh. Therefore having a variable property on an instance doesn't make sense, because if each instance is unique, then it contradicts the definition of an instance. It's not just about some kind of obeying-definition-pedantism – instances are used in order to save memory space.
Fortunately, one of few instance-specific properties is scale: so you can have all instances being copies of something, but have a varying scale:

For future people googling a different issue and finding this thread: Why does the icosphere node need a constant radius input?
"Why" questions have the risk of getting philosophical…
Points node creates a new geometry, and allows you to set a different position per point using a field:

So there's nothing forcing Blender devs to program other geometry spawning nodes in a similar way… Except if you have a sphere, it doesn't make sense to allow the radius to be a variable, because a sphere has a constant radius, right? On the other hand a Cube should have all sides equal, so it's not like Blender devs care that much about logic…
The answer is, then:
The radius can't be set depending on the position, because that's the way it was programmed. Breaking backwards compatibility is not worth it, as in this case it's trivial to do with just a handful of additional nodes:

Scale Instances. – quellenform Nov 27 '22 at 10:26