RP is not an accent; RP is accentless English. It's so-called standard pronunciation of English, but it doesn't mean it's the best. Accents are not intrinsically 'good' or 'bad', but people have certain perceptions and attitudes towards certain accents. And to a lot of people appearances are important. Often they are insecure people.
RP doesn't tell you where someone comes from; it only tells you of a person's social and educational background. Right now less than 3% of people speak RP English. Most educated people speak a modified RP; modified by various regional features that are characteristic of a person's background (where they come from, not their educational b/ground).
Before the WWII BBC announcers were recruited from a restricted social group of people who had certain educational credentials. At schools they had been taught to speak with this accentless English and so the myth of BBC English was born. And myths, as we all know, die hard.
Nowadays you hear a variety of accents on BBC, and most of them are modified RPs.
Should the RP be taught in EFL classes? Probably. Students need a standard to measure themselves against and RP can very well be that standard. They are never going to sound like a native speaker so they might as well aim for the accentless British English. They would sound ridiculous trying to speak Cockney for example.
The same goes for American English. Which American? Most likely, EFL students will be taught Standard Midwestern and not a Texas accent.
It's important to remember though, from a sociolinguistic point of view, that there is no such thing as a "better accent" or a "better language". All languages and all accents are equal and you cannot judge people by their accent or the language they speak. The so-called "primitive languages" very often turn out to be much more developed that the so-called "civilized languages."