The wordpress standard is widgetized, better to use widgets than shortcodes.
Most sites are use different layout only in front page, so we can provide complex widget position for layout on front page. Or we can provide page template with complex widget position.
But if we really need page builder we use page builder from http://wordpress.org/plugins/siteorigin-panels/ , this page builder is not built by shortcodes. With this page builder, you can put the widget in any position on a page to create complex layout. We think this is still the best page builder that keep wordpress standard in mind.
Shortcodes included in a theme is bad, imagine if you use a theme and have 10000 post that use the shortcodes then later you need to change theme, you should change all the shortcodes in 10000 posts with the new theme shortcodes.
For standard shortcodes, please try http://wordpress.org/plugins/shortcodes-ultimate/ , with this shortcodes collection we don’t need to make our own shortcodes plugin. The most standard shortcodes already in there.
For complex functionality like to display portfolio page, etc. is still better to use page template or widget rather than shortcodes.