> se volessi fare qualcosa di crossover senza dover ricompilare
Se volessi, non potresti. Questo è c++. Poi puoi fare cross-compiling, ma comunque anche questo è un aspetto di c++, non di python.
> Volessi, controllare se il parametro passato è una lista o numpy
Veramente il problema sarebbe a rovescio, no? Tanto c++ non accetta né una lista python né un "numpy" (mah), quindi al limite devi avere un meccanismo che converte entrambi, per dire, in un array c++. Ma convertire tipi avanti e indietro tra python e c++ è comunque il lavoro abbastanza standard di SIP, SWIG e le altre librerie sopra citate.
Uhm, non è che la vaghezza del post sia diminuita molto. Forse ti conviene farti un giro sulla documentazione di un po' di questi prodotti (forse inizierei con SIP, se devi integrare librerie o framework c++ già esistenti... ma non so qual è il tuo caso) e farti un'idea delle possibilità.