Clarification about `assign/2,3` usage in `render/1` callbacks

I think I remember reading somewhere that calling `assign/2,3` in the `render/1` callback of a LiveView or a LiveComponent is bad practice, but I don’t recall where, nor why.

Here’s an example, for sake of clarity:

def render(assigns) do
  assigns = assign(assigns, :new_assign, assign.a1 + assigns.a2)

  ~H"""
  {@new_assign}
  """
end

Is this pattern safe? If not, why not? Is this documented somewhere in LiveView’s documentation?

Thanks in advance