Apart from the Shortcodes, I really can’t see how the users will be able to use the Portfolio content and custom sidebars in the other theme if that theme doesn’t use the same plugin, and doesn’t have similar configuration
That's one thing that I really can't understand.Do we make a plugin with our custom portfolio page,custom contact page etc or we can leave it in the theme ?
From what I have understood, it is no longer ThemeForest requirement to have custom post types or anything else in a separate plugin, except you only have to use TGM or similar plugin to make users install any External or Bundled plugins. If you want to have something embedded in you theme, than you are free to do so.
For example, I'm going to use Redux Framework for the Theme options for the theme that I'm creating, which I've decided to embed in my theme. So for this I don't need to use it as a plugin at all. Also, I'm using Contact Form 7 as a plugin, so I'll use TGM to allow users to install it directly from the Wordpress repo.
This is from the best of my knowledge and understanding and I'm not 100% sure.