Нет причин делать это статической (глобальной) переменной.Windows API нигде не определяет это требование.Windows API, кажется, просто копирует имя по мере необходимости и внутренне создает для него атом.
Следующие строки взяты из примера generic.c
из комплекта разработки для Windows 3.1 1994 года:
BOOL InitApplication(hInstance)
HANDLE hInstance;
{
WNDCLASS wc;
/*...*/
wc.lpszClassName = "GenericWClass"; /* Name used in call to CreateWindow. */
return (RegisterClass(&wc));
}
Имя класса здесь является литеральной строкой только для чтения (если сегменты только для чтения существовали в 1994 году).