Quindi, come supponevo, un utente può ovviamente avere nella tabella più entry di richieste inviate verso altri utenti.

Il tuo codice però non è in linea con questa situazione, perché quella query recupera TUTTE le richieste inviate dall'utente, poi cicla sul risultato e ti mostrerebbe per esempio:
Richiesta inviata
Richiesta inviata
Aggiungi agli amici
Richiesta inviata
...

Suppongo che invece tu voglia solo sapere volta per volta se l'utente X ha inviato la richiesta all'utente Y.

La query dovrebbe essere

SELECT accettata FROM richieste WHERE richiedente_id=$id_utente_X AND ricevente_id=$id_utente_Y

Un paio di appunti:
- al campo "accettata" cambierei nome, perché non ha senso, indica se una richiesta è stata inviata, non se è stata accettata, o no? Ad ogni modo adesso è fuorviante. Se vuoi tenere traccia anche delle richieste accettate (e credo sia il caso) aggiungi un altro campo alla tabella.

- per indicare inviata/non inviata ed accettata/non accettata, userei 0 o 1, non una stringa.

- detto questo, un campo "inviata" puoi anche fare a meno di mettercelo, tanto se c'è una entry ovviamente sta lì perché è stata inviata una richiesta.

- i campi nome_richiedente e nome_ricevente sono inutili ed occupano spazio senza motivo, dagli id puoi recuperarli dalla tabella utenti, che suppongo tu abbia.