Warum möchtest du denn die gesehenen direkt ausblenden lassen? Damit nicht alles doppelt und dreifach geschaut wird? Ansonsten müsste man es doch auch in XBMC über gesehen/ungesehen/alle umschalten können, oder?!
Ansonsten würde ich es mir glaube ich etwas einfacher machen und alle o.A's, o.Al's etc auf 0 setzen, eine SPL auf match all aufbauen und dann alles prüfen, wie zB: {untested}
.
..
...
<name>KIDS 6</name>
<match>all</match>
<rule field="tag" operator="is">
__<value>KIDS</value>
</rule>
<rule field="mpaarating" operator="lessthan">
__<value>12</value> <!-- Max Alter: Nächste FSK Stufe; Gültig für das <mpaa>Germany:6</mpaa>-Format -->
</rule>
...und ggf noch alles ausschließen was nicht auftauchen darf (wobei ein Horrorfilm mit einem Rating von 0-6 ja sehr umwahrscheinlich ist - aber schützt natürlich zusätzlich vor falschen Altersangaben)
<rule field="genre" operator="isnot">
__<value>Crime</value>
__<value>Horror</value>
__<value>War</value>
</rule>
...denn damit müsste man sich doch sowas zusätzliches wie...
<rule field="genre" operator="is">
__<value>Animation</value>
</rule>
<rule field="genre" operator="is">
__<value>Family</value>
</rule>
...automatisch ersparen können, oder?!
Und zu guter Letzt noch die Regel für die noch nicht gesehenen...
<rule field="playcount" operator="is">
__<value>0</value>
</rule>
...
..
.
Wie gesagt ist nicht getestet, aber so in der Richtung würde ich das ganze mal versuchen... Damit könnte man dann auch verschiedene SPLs mit unterschiedlichem maximalem Alter erstellen (wenn man zB zusätzlich noch mit Profilen arbeitet und die Filme alle in einer Quelle lagert)