Is it possible to assign permission to fields? The idea is that one can assign permission to fields just as node types. Evidently this gives great flexibility to webmasters to account for unforeseen requirements. 

The advantage seems obvious: one can simply change permission of a particular field instead of defining a new node type and suffer the burden of migrating or re-creating old nodes into new ones. For example one can make an image field only visible to premium members.  

I appreciate your hints about this.
Yeah,
You can make use of Field Permissions


  Features
  
  Enable field permissions on any entity, not just nodes.
  Role-based field permissions allowing different viewing patterned
  based on what access the user has. Author-level permissions
  allow viewing and editing of fields based on who the entity owner
  is. Permissions for each field are not enabled by default.
  Instead, administrators can enable these permissions explicitly for
  the fields where this feature is needed. Field permissions overview