No, I don't think that we are in a functional programming "fad".
Penetration of functional programming constructs/features into or via mainstream programming languages like Python, Ruby, C# is just normal language evolution.
We drifted away from the crudely organized BASIC and FORTRAN programming languages, which lent themselves to writing infamous "spaghetti" code (no offense to the Flying Spaghetti Monster intended) in the late 1970s and early 1980s.
Structured programming languages like Pascal became part of the norm then. C, though allowing some pretty wild things, was a lot better suited to structured programming than early FORTRAN.
That caught on and these days probably very few people are writing "spaghetti" code. Java, for instance, does not even have a GOTO statement. Dijkstra's famous "GOTO Considered Harmful" statement was heard. His advice was followed.
Later, in the 1990, object oriented programming (OOP) constructions & mechanisms became widely adopted language features. Today, we take them for granted.
Python and Ruby were more or less born with functional programming capabilities. It is part of their appeal. C++ gained them too. Not at the syntax-level of the language but through the introduction of its standard templates library. C# and Java will probably be giving them to their programmers soon.
I think we are just seeing steady evolution - nothing more - away from the early nucleus of features that the earliest general purpose programming languages had. Their features were born from a desire to uplift programmers from the chaos and complexity of assembly language and machine language programming.
Despite being an answer to drawbacks of programming a computer right at the level of its native, proprietary machine language instruction set - languages like BASIC and FORTRAN were also heavily influenced by it.
FOR-NEXT loops, GOTO statements, and GOSUB & RETURN statements - these all have analogs in machine language, being represented as one or several machine language instructions.
Functional programming, object-oriented programming, and now aspect oriented programming (AOP) are simply well-proven improvements to contemporary mainstream programming languages & practices.
When you ask why we are changing and why we are evolving our programming languages & habits, go back and look at some assembly language source code.
Would you seriously want to write all of your programs that way?
One final thing to consider.
Go back and take a look at the design patterns that became popularized in the mid-1990s. Design patterns are an accepted repertoire of solutions to common programming problems. Things like Composites and the undoable Command pattern really benefit from this functional programming stuff. It is how OOP graphics programmers have been doing things for decades.
As a specific example, weigh how commonplace GUI programming and event-driven programming is today. GUI programming, especially graphics applications, really benefit a lot from functional programming. You are basically applying a verb to an object, a list of objects, or a group composed of objects.
That is what functional programming (FP) is all about! You compose functions of other functions, you "apply" a verb/action/function and perhaps some arguments/parameters to one - or many - objects.
So, adoption of functional programming by the mainstream programming community and languages is not a transitory thing. It it is a transition toward a mechanism that will make it easier to solve the challenges we are faced with today. Easier than it is to program modern applications with the original FORTRAN & BASIC programming languages of the mid-1900s.
What I think you will see when functional programming features are added to your favorite programming language is something that will bring you happiness. Many good programmers will adopt an FP-oriented style for certain places, such as I have already alluded to - where an FP-coded solution is clearer, shorter, and more maintainable.
I think most people will like that. And who knows, it might just guide some brilliant prodigy on the path to craft some completely new kind of application. One that functional programming - combined with these other programming traditions - makes totally natural & easy.
I also predict that languages having these capabilities will also lead to more powerful programming libraries for addressing various problem & solution domain concerns by writing less custom code.
Functional programming will not replace these other things. It will augment them.
The better programmers will combine FP and the other things like OOP, AOP, and so on to create sounder solutions. The new solutions will be a little cheaper, faster, and smaller - and more easily maintained/understood. That is what resulted from adoption of these other things, which were not "fads" either.