"In GDScript, only base types (int, float, string and the vector types) are passed by value to functions (value is copied). Everything else (instances, arrays, dictionaries, etc) is passed as reference."
So in your case parent.rotation is passed by value and does not affect the parents rotation. Maybe you should pass just parent and use f.rotation inside the function instead of just f.
OR just return the value f and set parent.rotation in the calling function. E.g.
func _process(delta):
parent.rotation =spring(parent.rotation,camera.global_transform.basis.get_euler(),0.5,0.1)
func spring(f:Vector3,t:Vector3,s:int,w:int):
var sprspd:Vector3
sprspd = lerp(sprspd,(t-f)*s,w)
return f + sprspd