You aren't changing it though. velocity_by_aim doesn't set the velocity. Also to change entity's (and player's) position use EngFunc_SetOrigin, not pev_origin.
Whether you need to keep adding velocity depends on the movetype. I believe that for MOVETYPE_FLY you don't as it isn't affected by friction, setting it once should be alright.