TextureHandle have only few integers inside, so it would be overoptimization to keep pointer to TextureHandle allocated on heap. Also, it's more error-prone, less safe, you have to check for nulls (ie. from new) etc.