Tracking some edge-cases here to think of nicer syntax to handle them:
selector inside pseudo-element:
// desired output
.block--mod:not(.block--othermod) { ... }
// ugly bemerald solution
@include B(block) {
@include M(mod) {
&:not(#{bem-selector(block, $m:othermod)}) {
// ...
}
}
}