This in particular is confusing:
"You should release the texture returned by GetBrushTexture after use to prevent leaks! Use FreeTexture to do this."
Why should returning the handle of the texture you assigned to the brush, and thus applied to the surface, then require you to use freetexture?
This is very confusing. What exactly is going on internally? Is the texture being COPIED to a NEW texture when you call this command? Does this happen every time you call the command on a specific entity, or jsut the first time? For what reason is the texture copied?
I completly agree. When I read the docs, I had exactly the same thoughts. Time for some testing, me thinks.
[EDIT]Ok, it doesn't seem to be copying the texture because even if I apply the newly acquired texture handle to another visible entity, the AvailVidMem() doesn't change. However, you can keep doing it over and over and over and the texture handle is always different, so it may be using system memory for all the extra handles. But since you can only free one texture, not both, it does kinda seem you're going to get memory leaks whether you like it or not. Or perhaps not if you only use it once per entity.[/EDIT]