I'd probably suggest refactoring this to use two subject blocks.

In earliest tests I did the same thing as this, but I recently (as in the last week) changed it so that in this case both context blocks got their own subjects, eg:

```ruby
context 'when the object_arg is not frozen' do
  subject { object.guard(object_arg) { return_value } }

  # ...
end

context 'when the object_arg is frozen' do
  subject { object.guard(object_arg) { return_value.freeze } }

  # ...
end
```

It's a tiny bit of duplication, but I think the intention is more clear than the previous code.