Librerie: Ifdef, Include e altri modi per fare girare la testa e non solo...

Riallacciandomi un pò a quanto detto da Testato in questo post http://forum.arduino.cc/index.php?topic=153592.msg2212754#msg2212754 apro questo nuovo topic per non sporcare l’altro. In pratica avrei bisogno di alcuni chiarimenti in merito alle librerie arduiniche e alle loro modifiche:
1- Ho una libreria chiamata (per esempio) “Pippo”, la quale libreria include un altra libreria di nome “Pluto”; in alcuni casi però, ho bisogno che al posto di “Pluto”, venga inclusa un’altra libreria di nome “Clarabella”. Come si fa ad escludere Pluto e ad includere Clarabella? Il mio piccolo cervellino mi dice, forse con un Ifdef? Cioè se nulla è definito, Pippo resta com’è e quindi include Pluto, se invece definisco un qualcosa come per esempio “Vado a letto”, allora includo Clarabella e Pluto lo metto a cuccia… E’ così che si fa? E se è così, c’è qualche esempio che mi faccia vedere come tutto questo si mette in codice?
2- Vedo in alcune librerie degli include di questo tipo #include <nome_cartella/nome_libreria.h> , per fare un esempio reale #include <avr/interrupt.h>. Questo modo di includere specificando anche la cartella di appartenenza, serve per dire al compilatore quale libreria deve usare nel caso uno avesse due librerie omonime? Ha altri motivi di esistere?
Per ora mi fermo qui e mi scuso se per molti di voi questi quesiti potranno sembrare banali…