Yes you could reduce the risk of typos by reducing the string input required.
Now seeing that all SpecTypes are in the Autodesk.Revit.DB.SpecTypeId class, that part of the path could be omitted. So in most cases you would just be using a one word string such as 'Length' for other nested types it reduces to something like 'Int.Integer'.
I think long term you need to switch. I was interested to understand why you are using attributes and an enum to store these things rather than just a class structure say with static properties for each parameter etc? Seems harder to get the information out of the attribute than need be.