2) Every production code I could find makes FIQ routine in Assembly. I could find a few people telling that it is possible to make it in C but the very few examples I could gather start from a "naked" function and inline-asm the entry and exit, with a small C core in it.

In particular one example found HERE makes it and gives some precious advices.

Nevertheless, I tend to use C just because I need to learn one thing at a time, and ARM Assembly can be left for later.

(To be honest, right now my FIQ handler is just a bunch of bytes in an array compiled from the simplest assembly needed to make it doubtlessly run - it turns on an LED.)