i try to keep as close to lite-c as possible ! the return values of functions aren't always that obvious !
I also chose static constructors, because then you know WHICH function is used to create the entity (as there are several available, like ent_createlayer etc...)
thus in short, looking at the code, it should be easy to see which acknex function is called/used, this isn't as obvious anymore if the name is changed (for example through a constructor, or changing vec_add to add or even overload the + operator...)