So, i gave it a quick try and it seems when calling ent_morph the ent_clone memory isn't freed. If you let the following code snippet run for a while it will give you an out of memory error. You can even see the memory go up in the debug panel.
Code:
#include <acknex.h>
#include <default.c>

void main()
{
	wait(1);
	level_load(NULL);
	ENTITY* e = ent_create(CUBE_MDL,vector(0,0,0),NULL);
	while (1)
	{
		int i;
		for (i = 0; i < 1000; i++)
		{
			ent_clone(e);
			ent_morph(e,SPHERE_MDL);
			ent_morph(e,CUBE_MDL);
			wait(1);
		}
	}
}



Always learn from history, to be sure you make the same mistakes again...