In the campaign smart list, are you using a separate smart list (i.e. Member of Smart List filter) or are you creating the list of contacts within the campaign's smart list? Best idea is to go through each individual filter and check that you didn't mix up is/is not, contains/not contains, in/not in, etc. Also check your filter logic, make sure your filter logic is using the correct AND/OR statements.
Also check if your schedule tab shows EACH LEAD CAN RUN THROUGH THIS CAMPAIGN ONCE (in case you are re-using the smartcampaign, for example).
Thank you both. It was related to the filter logic - ALL vs. ANY.