You can pass it manually, and you can invoke this method from other compilers that don't implement the attribute. In those cases you want an explicit parameter and one with a default value.
This explanation makes sense to me. If you invoke this function with reflection, there's no hope of capturing the textual argument from other parameters.