Constraints in design can never be avoided. Every problem has a context, and every context has its own unique set of constraints. So it is with web development. Early websites were simply static HTML pages that you requested from the server. Each new page you go to is a completley new request with completely new HTML. Sites began implementing layouts on websites that kept consistent headers and footers across all pages. So although users are seeing the page go blank and then reload, sites would still attempt to create a smooth experience thoughout.