В вашем примере переменная является свойством, а _variable является переменной экземпляра. Для простоты мы можем сказать, что, синтезируя, вы по сути указываете, что свойство (в нашей переменной case) будет использовать переменную экземпляра (в нашем случае _variable) для хранения и извлечения значений. Что вы действительно делаете, так это инструктируете компилятор создавать реализации, соответствующие спецификации, указанной в объявлении свойства.
Рекомендуемый способ освобождения при использовании свойства - просто присвоить ему ноль. Это, по сути, освободит объект, а также установит переменную экземпляра равной nil вместо того, чтобы быть висящим указателем.
Если вы не использовали свойство, тогда вы можете вызвать релиз для переменной экземпляра, а затем в идеале вы хотите установить его в ноль.