I'm not sure how to expand a command that has already entered the history, but I wrote a function to select any files through fzf and have them passed to whatever program (GUI or command line tool) you want (you can also see it in an answer on stackoverflow). And I made it so that when you cycle back through your history and find the command as it was expanded after fzf did its thing. I use it many times a day, mainly to change directory or open files.
I called the function 'f', so if you wanted to cat a file with line numbers (-b) and newline symbols (-E) you would do:
f cat -bE
or
f cat -b -E
and hit enter. FZF launches and whatever file(s) you choose would be passed as arguments.
Then when you went back in your command history, you'd see:
cat -bE '/home/mattb/todo/README.md'
instead of:
f cat -bE