Why do Methods marked @TestSetup in Classes marked @IsTest count against test coverage requirements?

This has nothing to with @testSetup.

My answer from a similar question which is valid for this one also:

What could have happened is, test class was created without @isTest annotation (at this point the class has been added to the code coverage table) and @isTest was added later (but this doesn't remove the class from the table). This usually happens if you create test classes in Developer Console. Delete and recreate the class and make sure @isTest is added at the time of creation itself. Create the test classes through Force.com IDE, Mavensmate or from setup page. The test class should disappear from code coverage table.


This has been identified as a bug by Salesforce support and logged in known issues.

The workaround identified by Avinash does work for the time being.