Note from [~pavel.mikula] about ViewDataAttribute:
It can be read from implicit models with strong type checking (good) OR from ViewData dictionary (bad). So it's 50% OK and we cannot predict this on C# side of the code. So we should not raise it until we run rules on CSHTML Razor templates.