When I thought about global temporary tables, I got one maybe interesting idea. The one significant problem of global temporary tables is place for storing info about size or column statistics.
I think so these data can be stored simply in session variables. Any global temporary table can get assigned one session variable, that can hold these data.