much of the front-end complexity is driven by product people and designers who want to jam as much interactivity and visuals into the UI as possible. Also complicated front-end layouts are necessary to make room for advertisements - the main source of revenue on the internet!