Char initialized as concatenation of String +String variables generates error

I can't do anything about that as far as I know. The wifi.macaddress() call returns a String. If Arduino had another library that give a wifi device's MAC address as a char array, I would love to hear about it.

To be exact: The Arduino WiFi class doesn't have the macaddress() method so don't blame Arduino for someone else's fail.

Using the String class on the ESP8266 may be less of a problem than on the Arduino because the ESP8266 has much more RAM so wasting a few bytes for that class may be acceptable.