这个问题非常好!可以说是知乎上不多见的有学术价值的法律类提问,我尽可能不用法言法语回答一下。
我国刑法规定的罪名中大概有几十个都用到了“非法”二字,但是细分下来,其意义是不同的,大概可分为以下三类:
一是提示存在违法阻却事由。用题主的话说,可以理解为对应着同等的合法行为。典型的有非法种植毒品原植物罪,确实存在由于医学、制药等方面的需要合法种植毒品原植物的情形;又如非法持有枪支罪,民警在执行职务时是可以合法枪支的。但是,刑法不可能事无巨细地在每个罪名中都描述其可能存在对应的合法情形,诸如执行死刑,也可能是合法的“故意杀人”行为。因此出于社会生活的一般情形,就没有必要再啰嗦地表述为“非法故意剥夺他人生命罪”,只按最通常的情况表述为“故意杀人罪”,但不意味着一定没有对应的合法情形。
二是表示违反前置的行政性规范。刑法具有最后性,只惩治危害性极大的行为。如非法捕捞水产品罪的构成要件中有一项“违反保护水产资源法规”。欲构成本罪,首先违反了有关的行政性规范,应当承担罚款等行政责任;只有情节严重时,才承担刑事责任。
三是只起增强语气的作用。这种情形下的“非法”不具有实体意义,如非法剥夺公民宗教信仰freedom(怕被河蟹)罪,信仰freedom是个宪法权利,不可能被合法剥夺,只要实施了剥夺行为,就一定是非法的。可以认为这里的“非法”只起增强语气的作用,即便删了也不影响含义。虽然“法律不是被嘲弄的对象”,不过立法活动毕竟还是有偶然性的,不可能要求所有的罪名设置都文不加点。
以上三种,可能有些时候界限不甚分明,这里就不讨论得那么细了。如果想更深入地学习,实际上罪状(即法条)中的“非法”比罪名中的更有探讨价值,前者是人大制定的,罪名是两高制定的,某一行为之所以成为一个罪行,其依据是前者而不是后者,后者只起表述便利的作用。推荐阅读张明楷教授的《刑法分则的解释原理》,里面讨论了这一问题。