A few questions on the first steps with an ESP32/ESP8266 NodeMCU
Checking if everything works fine
  
  After you connect to the relevant COM port, using either putty, Arduino IDE or any other method, what are some basic commands to check the version and the status of hardware in general?


Program it. If it behaves as you expect then it's working.


  Reassuring a restore point
  
  Is there a way to keep the initial/factory firmware in some kind of image? Or is the basic firmware stored in some kind of ROM that can't be changed by a user no matter what? In other words, is it possible to "brick" a NodeMCU in case something goes wrong, and how to prevent that?


Why would you want to? You can just download it. And "bricking" is hard, since you are programming the board afresh every time you hit "upload" in the Arduino IDE.


  Restore from backup
  
  What is the proper reverse process to restore a NodeMCU to a previous state?


You just upload whatever you had loaded on there before. 


  C / microPython
  
  I have seen some projects using microPython instead of C, what is the standard way for start using a NodeMCU with microPython?


Install it, then interface with it, however that is done. We're Arduino here, so we support using the ESP8266 etc with the Arduino API. We don't support MicroPython.


  LUA (LUA shell)
  
  What exactly is the role of LUA in a NodeMCU? Is it just the interface a user has available after the COM connection?


It is another programming language. Like MicroPython. Use it if you like - however, it's a dying language and learning it is not recommended. Again, we don't support Lua.