Without seeing your actual file/example, I’m guessing this is just the self-shadowing biasing going on.
Shadows in Rhino are achieved by what is known as “Shadow Mapping”… I’m not going to go into a long discussion on what that is, or even how it works… But the method was chosen because it was better than all the other alternatives, given what Rhino’s Rendered viewport and scene can support.
One of the cons of Shadow Mapping is called “self-shadowing”, where an object creates data in the shadow map, and then when that map gets applied to the overall scene, it gets applied to the actual object that created it, thus, causing the object to always be in its own shadow. Note: This is not the same thing as an object casting a shadow onto itself.
Long story short… To get around this drawback, the object is “biased” away from the light source when producing the shadow map data, so that when the final depth comparison occurs, the object’s depth ends up being slightly less than the shadow depth…thereby keeping it out of its own shadow. The problem with that is that it can cause shadows to drift away from sharp edges and/or boundaries, depending on how large the bias value is. That’s just how things work… And it can get compounded even more depending on the overall scene and the camera’s near/far clipping planes, since those can impact the precision of the depth buffer…which in turn can/will impact any/all depth comparisons.
To help mitigate most of this, there is a “Self Shadowing Artifacts” setting in the “Shadows” section for each display mode. Moving the slider to the left (towards “Dirty”), will pull the object’s shadow closer to itself, while moving it to the right (towards “Cleaner”) will push the object’s shadow further away. If you slide it all the way to the left, then that’s going to give no biasing at all, and in most cases, your objects will all turn black, a shade of gray, or speckled (or combinations of all).
There is no magic setting or fix for this, given the current techniques being used. If you want perfect shadows, use Raytraced mode, or some other renderer/raytracer.
We’re always tuning things up, and we may even move away from shadow-mapping in general, but just know, that achieving real-time shadows, for unlimited light sources, consisting of multiple light types (i.e. Directional, Spot, Omni, etc), comes at a cost of not producing perfect results.