Why using 'new' is allowed in pure functions but calling GC.addRange or GC.removeRange isn't allowed?