I would suggest a compromise.  This is what my own clearfix mixin looks like:

```scss
$default-clearfix: modern !default;

@mixin clearfix($type: $default-clearfix) {
	@if $type == modern {
		@include clearfix-modern;
	} @else if $type == traditional {
		@include clearfix-traditional;
	} @else {
		@include clearfix-overflow;
	}
}

// http://www.positioniseverything.net/easyclearing.html
@mixin clearfix-traditional {
	zoom: 1; // fix for IE

	&:after {
		content: ' ';
		display: block;
		height: 0;
		clear: both;
		visibility: hidden;
	}
}

// http://nicolasgallagher.com/micro-clearfix-hack/
@mixin clearfix-modern {
	zoom: 1; // fix for IE
	
	&:before, &:after { content: ' '; display: table; }
	&:after { clear: both; }
}

@mixin clearfix-overflow {
	overflow: hidden;
}
```

Those of us who prefer the micro clearfix as their goto clearfix technique can get what they want and instances where overflow is used for clearing purposes remains clearly defined.