What about a decimal point in the name? It would be nice to have some pseudo name space. I think if you are going to use 40 characters, you should just go ahead make it 64. Maybe down the road, you might need it?
I think the number will be 32, but we will look at making it easier to change in the future.
I'm sure we could do about anything we want as far as embedding stuff, the question is simply how painful the parsing becomes and how patient our users are when the never ending stream of side effects show up. When you can mix all of the valid elements and nicknames, and in some cases even combinations of both (for instance, T[MyIndexNN].Acc), in with full expressions with nested function calls, tossing in random punctuation isn't conducive to simplicity.
But seriously, I've been coding with C symbol rules for my entire professional career and I haven't once been frustrated that I couldn't embed a pound side or dollar or ampersand or whatever. I camel case for clarity, and might add an underscore when I need an additional level of division. "MyObject_Field" isn't meaningfully different in practice than "MyObject.Field", is it?
And remember that you will be able to create your own data types. Rather than creating pretend structs with dots in nicknames, you will be able to create real structs.