That English does not make it easier to understand.
char (*(*x())[5])()
into this English description:> declare x as function returning pointer to array 5 of pointer to function returning char
What was really needed was just to disentangle the function declarations, like this:
x: fn () -> &((&fn () -> char)[5])