It's not a bug, in Half-Life source code also it's used a engine function to set origin and size in entities (the same happens with size, better use EngFunc_SetSize or entity_set_size).
Code:
// enginecallback.h
#define SET_SIZE (*g_engfuncs.pfnSetSize)
#define SET_ORIGIN (*g_engfuncs.pfnSetOrigin)
// util.cpp
void UTIL_SetSize( entvars_t *pev, const Vector &vecMin, const Vector &vecMax )
{
SET_SIZE( ENT(pev), vecMin, vecMax );
}
void UTIL_SetOrigin( entvars_t *pev, const Vector &vecOrigin )
{
SET_ORIGIN(ENT(pev), vecOrigin );
}
__________________