Yes they can be but only sometimes. I believe at one point we considered loosening this up a bit more but there were other issues.
A structure field or property name can be a reserved word or even sometimes an invalid property name if created externally (java,com or .net) or using mystruct.('propname'), syntax. For a class property this class has two properties. Note that reserved names can be used if not declared in the properties block:
classdef tstclass <dynamicprops