personally we think that any shell script longer than about 5 lines or uses builtins other than export and exec is doing too much in shell and should be written in something else. lately we've given up on scripting, even, and just end up building larger programs in OCaml.
Personally I would not draw such a hard line at 5 lines, but by principle I agree with you. I also wrote sh-scripts way over 2k lines myself, and recognized afterwards, those better be done in another [scripting]language.
Generally you are right, because by principle one always shall chose the tool suiting best for a certain job.
But there are additional points also need to be seen, tradeoffs need to be made:

Which tools/languages knows somebody?
Everybody can only work with the tools learned. And you can only judge and assign certain task to certain tools you know.
That's why everybody is well adviced to always keep an eye open for new things. One does not need to learn everything. Impossible anyway. It's way too much. But every computerist is adviced best to at least glimpse at anything
new yet unknown, see if those may fit the personal portfolio, and even if not, at least keep them in mind (bookmark.)

There is always a tradeoff between learning and doing actual productive stuff.
Learning and maintaining are very important about computering, and better be not neglected. But doing actual productive stuff is the main plot. If you are being confronted with a new task, which would be done best with B, but for that you have to learn B first, but it also can be done with A, not quite as good but you are already well versed in A, you need to answer for yourselves: Is it worth the effort to learn B? Or better just solve it still in A? Especially when you consider: not knowing, if this will be the only task to be solved in B; are you working in a team; within a time schedule - you see this question can become really complex, needs effort itself just to be only answered, in which time you may already solved parts of it in A while you not even started on learning B yet.

Sometimes things simply grow.
I have some shell scripts once started as 5...10 liners. Then you add another line, or two "well, better respect this, too"..."with 3..4 more lines it can do this, too..." and suddenly your script is >300 lines.
Without any real need as long the thing works satisfactory you don't start to rewrite it by scratch in another language, just because that lang was more suitable for the job, only. (Which also produces new bugs.)

Learning to evaluate tradeoffs needs also be learned as learning to learn.
If your tradeoffs are badly judged you do the 12th project still in A, being annoyed not started on B sooner. Or you being annoyed to spent all that time to learn B which you never used again, which wasn't a great loss, if the time spent on it were not that much - with everything new you learn you always gain something useful.
The true power of Unix does not come by the tools themselves, but more from the combination of that tools - the more you know, the more power. But neither everything there is can be learned, nor in no time - again: tradeoff.
Learning to learn also brings better estimation on how long you need to learn something, at least what deep it's worth to dig in, or not, and how long it takes you.
My advice for the OP was to first get a copy of each:
Kochen, Wood,
Shell Programming in Unix, Linux and OS X, Addison Wesley - (quick'n'easy entry)
Robbins, Beebe,
Classic Shell Scripting, O'Reilly - (more comprehendable, way deeper)
You can get both for a few bucks at a used book store, can be read within a weekend, and brings
a lot useful and valuable insights and knowledge.
Anyway take a glimps at all the other things mentioned here:
awk, sed, perl, tcl/tk,...
and then see for himself which of those, in which order to dig in deeper.
Especially awk and sed in combination with sh warp up your shell powers significantly, while
Aho, Kernighan, Weinberger,
The AWK Programming Language, Addison Wesley, is quite a small book - not for everything you want to learn always dorstoppers are needed.
But IMO sh was first choice, primary task, core basics.