Actually, it is intended behaviour for
i to not be highlighted as a warning, because it is initialised from the value of a variable. This warning is only ever given when the variable is assigned from a compile-time constant.
Try out the following code:
int i = 0;
string s = "string";
string t = "another string";
string u = t;
var v = new string('v', 1);
var y = new XElement("hello");
s are given warnings. According to this post, this is intended (although for a rather questionable reason IMO).
So really the mystery here is why there are any warnings at all!