Well to be absolutely sure id have to test this, but i think this would work, its the first method to get rid of exact dups, then passing it through a (likely) slower method to match upper/lower case

Code:
alias ex {
  window -c @tempwin | window -h @tempwin
  filter -fk sourcefile ex.filter.alias1
  write -c destinationfile
  filter -wk @tempwin ex.filter.alias2
  window -c @tempwin
}
alias ex.filter.alias1 { if $len($1) { aline -n @tempwin $1 } }
alias ex.filter.alias2 { if ($read(destinationfile,nts,$1) || !$readn) { write destinationfile $1 } }


ok so this one creates the hidden window, and filters to tyhe /ALINE -n alias to remove identicial lines, then filters to the 2nd alias which scans the destination file adding only lines that dont exist.

Something i noticed about the $read(,s) switch was that it matches lines begining with exactly the string passed, so * & ? are not expanded as in wildmathes, so the second alias well look for a line begininging with a match to exactly the text passed, note that what is returned by the $read is not the whole matched line, but anything remaining on the line, so a exactly matched line well actually return $null which is why you WANT to write a line out that returns something on $read as that means its not the same as $1 (pretty wierd i know)
Then to confuse the matter assuming its $null returned by the $read you then need to check if it was a matched exactly line, or no match at all which also returns $null, and this is the $readn which is zero if no match located.

* i do think there might be some small logic hole in this somewhere, but i cant for the life of me locate it. So try it and see how it goes.