Of course there is nothing really stopping you from writing functional code in any language. It's just that notationally, functional languages make it much easier. In the same way, you could write object oriented code in any language, but the verbosity would negate it's usefulness.
By definition, functional languages require complex, structured return types. Typically implementations use nested lists (where items are referenced by position) or nested hashes (where items are referenced by name). It's not hard to implement these data structures in simple languages like C, but as you said, the verbosity would negate it's usefulness.
But anyway, the problems with functional ideoms only start at this point. To take a made-up example in Perl syntax:
sub foo($) {
return $_[0] == 1
? { key => +1, value => bar() }
: { key => -1, value => baz() };
}
What is the return type of foo? Without looking at the implementation of bar and baz you cannot tell. Functional languages make it very hard to separate interface and implementation. It takes a lot of support by the run-time systems and development tools to make up for it.