Posso copiar uma string em uma string vazia?

Suponha que eu goste disso para copiar a string.

char str[] = "";
char *str2 = "abc";
strcpy(str, str2);
printf("%s", str);  // "abc"
printf("%d", strlen(str));  // 3

Então, por que não me dá um comportamento indefinido ou fazendo com que o programa falhe. Quais são as desvantagens de fazer assim?

questionAnswers(3)

yourAnswerToTheQuestion