In the USPPA Official 8-ball pool rules it says the following:
9.0 LOSS OF GAME
9.1 Opponent Wins
The opponent legally pockets the 8-ball.
9.2 8-Ball Foul
An 8-ball foul occurs when the 8-ball comes to rest off of the pool table, when the 8-ball is pocketed in the wrong pocket or out of sequence, or when the 8-ball is pocketed while a foul occurred (i.e., shooting player pockets the 8-ball and simultaneously scratches). The game continues if the 8-ball has not been pocketed.
This seems to confirm that if you legally pocketed the 8-ball, you won.
A legally "called" pocket is defined in the same rules as follows:
In Call Pocket, it is encouraged that all balls be specified along with their intended pocket. However obvious balls and their respective pockets do not have to be specified. Any bank shot (object ball to rail), kick shot (rail(s) to object ball), or combinations (2 or more balls from either group) must be called to their designated pocket, or they are considered a miss. When a player successfully pockets his/her designated object balls, they continue their inning until either a miss or a foul occurs.
Call pocket notes:
a) It is never necessary to specify details such as the number of banks, kisses, caroms, rails, etc.
My reading of this is that as long as your 8-ball went into the pocket you called it was legal. Pocketing the 8-ball isn't treated differently than pocketing any other ball in this respect. You were right, your friend is wrong.