You can modify field descriptions and red warning messages on-the-fly, possibly to reflect changes in requiredness. Example, on changing the priority to Blocker (or Highest in newer JIRA versions), the Description help text changes:

high pri

To do this you put a validator on for example, "Priority", with the following code:

def formField = getFieldById(getFieldChanged())
def descField = getFieldById("description")

def priority = formField.getValue()
if (priority == "1") { // Blocker or "Highest", priority
    descField.setHelpText("Please explain why priority is Blocker.")
    descField.setRequired(true)
}
else {
    descField.clearHelpText()
    descField.setRequired(false)
}