I found that defining a $-method for an S7 class negates another $-method for an S3 class.
I could not reproduce this in an interactive session, so I build a small package to demonstrate the weird interaction.
Please see the README of https://github.com/teunbrand/s7bugreport/ for details.