My smartlist for how many times an album has been played: (create your own smartlist with these rules: it will be used below)
[Media Type]=[Audio] [=save(100000,v_albumplayed[album artist (auto)][album])1]=1 [=if(compare([number plays],<,load(v_albumplayed[album artist (auto)][album])),save([number plays],v_albumplayed[album artist (auto)][album]),1)1]=1
Once run, the number of plays for a given album will be stored in the variable: v_albumplayed[album artist (auto)][album] and you can create the filter, eg
[=compare(load(v_albumplayed[album artist (auto)][album]),=,0)]=1
This will result in only showing albums that have never been played.
Then you can OR the two rules above in the finale smartlist:
playlistid==* ([=compare(load(v_albumplayed[album artist (auto)][album]),=,0)]=1 or [Rating]=5) ~a
*your smartlist containing the rules above that calculate the number of plays.
[edit: fixed some errors transcribing from my setup to this example!]