Another point in-lieu of performance is that the statement SPContext.Current.Web.Site.OpenWeb().Lists["List"]
will access the list List
from the current site collection while the line SPContext.Current.Web.Lists["List"];
will access the list from the current web, but not from the current site collection.
Consider this scenario...
Consider there is a list Employee
exists at the site collection http://[web-app]/sites/sa
.
And there is subsite en-us at sa site collection.
Then if use this line SPContext.Current.Web.Lists["List"];
then it will try to find the list in the web inside the sa/en-us which in turn throw a error.
Whilw using the statement SPContext.Current.Web.Site.OpenWeb().Lists["List"];
will find the list in sa site collection and run successfully.