I agree that using ! is non-standard outside the fandom cultures. It looked weird to me when I first saw it. Sometimes I am still not sure what goes first, the canon character or the derivative qualifier, especially for crossovers (is it SailorMoon!Harry or Harry!SailorMoon, to take a particularly silly example). However, a special delimiter is needed as a shorthand for “a derivative work based on with elements of ”, and space or a dash is not unambiguous enough. The “bang notation” appears to be one of those memetic leaks from subcultures to the mainstream which is likely to survive for some time.
I agree that using ! is non-standard outside the fandom cultures. It looked weird to me when I first saw it. Sometimes I am still not sure what goes first, the canon character or the derivative qualifier, especially for crossovers (is it SailorMoon!Harry or Harry!SailorMoon, to take a particularly silly example). However, a special delimiter is needed as a shorthand for “a derivative work based on with elements of ”, and space or a dash is not unambiguous enough. The “bang notation” appears to be one of those memetic leaks from subcultures to the mainstream which is likely to survive for some time.