I use them all the time. It is probably the easiest way to set up an event handler, to raise alerts if anything goes wrong. No need for Grid Control or anything else, just write a simple script that will send an email whenever a service/instance/whatever fails.
FAN is mostly used in conjunction with the Oracle connections pools (like UCP), where it is already integrated and implicitly used. I know very few people using FAN events directly.
However FAN over OCI is very useful for OCI clients (like sqlplus) as well.
check following whitepapers on client connectivity:
This should give you examples where FAN is used.
Furthermore there is a mechnaism on the server itself to react to FAN events (called FAN Callout). This could e.g. be used to restart the app server on database down/instance down, if the app server does not deal with connection pools etc.