i strongly agree with this too. it doesn't really make sense to directly copy the c-api as much as possible. make better use of c#'s oo features.
it would be a lot cleaner if all the engine functions were put into the proper objects as methods. the structure is quite clear anyway. all ent_ functions belong to entities and so on.
it also should be Entity my = new Entity("guard.mdl", new Vector(0,0,50), null); instead of ent_create().
...and i still think that var handling should be automatic.