how does SQL Server know to lock view objects?
From Conor Cunningham, the ultimate source of anything engine- or optimizer-related:


  We track things during compile to check at runtime.  We do not parse
  things at execution for this purpose.
  
  Note: the internals of what we do from one release to another are not
  guaranteed.  This is beneath the officially supported surface area.


My belief is that the binary version of the execution plan (not the one that is readable and exposed to us via XML, which is only a subset of the binary version) must contain some pointer to the view(s) referenced in the original query text (and this was alluded to in the SO question). It obviously isn't parsing the query text every time. Conor implies as much above, but is careful to not reveal any details about where or how this is stored, since this could potentially change from release to release or even with a service pack or cumulative update. He probably also doesn't want to encourage any detective work. :-)