Great thing about static building is deployment simplicite: it works every where.
It is fast, you don’t need a server with lot of power and memory.
It is simple to maintain. You don’t have to fight with server updates, incompatibility of library versions, configurations in the server, etc.
If it works in your computer, it will work in the server.
Another attractive features is the ability to have all your site in your own computer.
I can show it to any body every where.
Implementing dynamic behaviour is harder. If you need a lot of interaction with visitors, I think it is not the best option.
Comments may be implemented though other external services (or other packages installed in your server). Email form can be implemented that way too.
But if you want a forum, for example, a static generator is not obviously the way to go.
I think Jekyll and other static site gens must evolve yet.
In order to be able to display content more dynamically, they should completely separate content from displaying (which it not the case now in the final version of the site).
Content should be saved as json or other structured format static data files.
Displaying should be rendered using JavaScript from that files.
HTML files should have justa an ides of pages they must show and JavaScript to recover content in that pages and show it.
Thus you could have things like continous scrolling index pages for large sites with lots of pages.
Or complex searches in your site like “pages with this set of tags in category 1 and 2 but which does not have this other tag”.
You cannot do that, now. You can use google to do your searches, but you cannot implement it in your site with external services.
Well may be you can implement it using a custom with with heavy work in JavaScript and a plugin to generate the data files (not sure of this as each source file just renders one output file), but you have not aid from Jekyll to do that.