Starting repls is a great thing, I have to admit. I can do that partly by e.g. ':!python -i -c "whatever"' but it's not really integrated.
I also love to do "other" things in text files instead of websites, because text files allow you to do anything with it. Automated tasks, reformatting, compiling to other formats like diagrams, storing in the cloud, or a repo, or simply adding it to an email. I don't see why I need plugins or special modes for it, though. I think that's more an argument for learning text editors in general. No matter if you use vim, emacs, sublime, or maybe atom, in any case you gain a huge advantage over people who can only be efficient inside a huge IDE or their web browsers.
The other things like debugging, documentation generation, etc are in my eyes not tasks for a text editor. I expect to do that in the shell and it works there. Jumping to definitions is possible in Vim btw. Under the hood it integrates with ctags which is a typical tool to index code definitions, I think (or does it only exist for vim?).
The git example, in my eyes, is perfect for what I meant, though. You can't do some things as directly or easily with ":!git" but that also works the other way around. No plugin enables you to do everything you can do with ":!git" and I bet if you write git aliases for what you want to do, you can nearly be as efficient in the things the plugin can do. The added cost is that you need to write them yourself. The added gain is, that you learn to use git better and you can even use the aliases when you are not in vim.