A powiedz, dlaczego tak bardzo zależy Ci na szybkośći?
Już dawno minęły czasy, gdy godzina [a pewnie nawet sekunda] pracy komputera warta była nieowybrażalną kwotę - była wielokrotnie cenniejsz niż czas pracy programisty-informatyka. Dziś sytuacja jest odwrotna, to cena czasu pracy programisty jest wielokrotnie wyższa, a czas procesora ciągle maleje. Jeżeli tak, to jak najbardziej funkcje, struktury, klasy, programowanie obiektowe i śledzenie wszelkich nowości ułatwiających programowanie [może nie są konieczne na SPOJ'u, ale świat się na nim nie kończy] - c++ > c++14: STL, BOOST, .... funkcja lambda, deklaracje auto, wskażniki automagiczne, ....
AD 1
Pisanie kodu na pewno tak, chociaż wywołanie funkcji, to jakiś mały narzut czasu[mikroskopijny?] W kodzie jednak najczęściej są inne wąskie gardła spowalniające szybkość działania: niewłaściwy algorytm, niewłaściwie dobrane typy zmiennych, czy nawet źle napisany kod.
AD 2
Niestety, nie znam. Najlepsze są dobre książki.
ALe są przecież google, wikipedia i ciągle pojawia się coś nowego.
Np [stare] 
http://pl.spoj.com/embed/info/
http://pl.spoj.com/embed/links/
Lektury nie zabraknie.
AD 3
Pewnie wiedzą co czynią. Wykorzystują algorytmy, kiedy trzeba, a ad hoc gdy zadanie tego nie wymaga, ale też wiedzą kiedy warto użyć fast i/o, a kiedy slow, kiedy działać na bitach, a kiedy na bajtach czy strukturach.