Hello,
That is primarily since some UI string resources could be applied as the default value for Avalonia properties in their static initializer, and those only occur once per app lifetime. We generally provide public properties where you could update those property values programmatically after a language change.
There are also some cases where string resource values are assigned to properties in XAML templates. That value would not update unless the control's template was reapplied.
Those two reasons are why we generally recommend that you restart the application after a language change, to ensure all possible string resource updates are applied properly.