The rule Hide non-billable expense entries ... doesn't seem to work on all invoices. Why?
It is possible that the project was created before the rule was set in Settings. If any of the projects were created after the rule Hide non-billable expense entries on invoices was checked in Settings, this rule won't apply on them as the options in Settings are not retroactive. You need to add the project-level rule to those projects in order for the expense entries to be hidden on all invoices. The best way to do this is to do a Batch Update to add the rule to all projects from the Projects screen.