When the basic structure of drupal is presented; Theme (columns and basic content location), pages and stories (a basic content type which may be promoted to the front page), Blocks (a basic building element which may be placed in any of the locations created by the theme), Modules (PHP code which are either or both (display, program function, program and display). Some may see this structure as a set of rules – like say Controller, Module, View.
None of these descriptions are hard rules – blocks for example by default can contain HTML with style property, (and PHP can be enabled). If one wanted to replace the page header and logo … without touching the theme … one only needs to write out the HTML they would like to use and place it in a <div> tag with a style of position:absolute; top:0px; left:0px; width:100% … done a new header on selected pages without any need to modify the theme or create special conditions in the php code.
To see an example look at my San Diego Drupal site