Εμένα δεν μου φαίνεται καθόλου περίεργο από την άλλη να βγάζει 1 σε διαφορετικές συμβολοσειρές. Αν βγάλει 1 σε ίδιες, εκεί έχουμε το πρόβλημα :)
Από το manpage:
The strcmp() function returns an integer less than, equal to, or greater than zero if s1 is found, respectively, to be less than, to match, or be greater than s2.
Δεν επιστρέφει δηλαδή boolean. Επιστρέφει κάτι > 0 (στις περισσότερες υλοποιήσεις υποθέτω 1) αν η 2η συμβολοσειρά είναι λεξικογραφικά μεγαλύτερη από την 1η, κάτι < 0 (λογικά -1) αν η 1η συμβολοσειρά είναι λεξικογραφικά μεγαλύτερη, και 0 αν είναι ίσες.
Το παράδειγμα χρήσης προφανώς δεν βοηθάει γιατί δεν κάνει if πάνω στο strcmp (ώστε να δείξει τι κάνεις μετά) απλά τυπώνει το αποτέλεσμα :p