That adds complexity to error messages.

I would like to avoid the current problem, which is with nested MLPs that parameter names in the log get very long because they concatenate the names of all the nested structures (MLPs). If the layer_name was None, it would be easy to prevent that (do not concatenate the name if the child layer_name is None).

Moreover it's a problem for dropout:
If you want to specify the dropout parameters for the inputs only,
and that you have this structure:
MLP { 
    MLP 'h0_MLP' {
        Layer 'h0_Layer'
        .....

Should I put 'H0_MLP ' or 'H0_Layer when setting the dropout parameter? Is it equivalent?
Unfortunately, only setting 'H0_Layer' will work as intended. If the MLP had no name, there wouldn't be such issues.