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.