As a general rule, I don't share fields unless they are being shared on entities that are part of the same section (or feature if that makes it easier)of my site.
For example, if I need an Entity Reference field that links to users on both a Blog content type and a Blog taxonomy term (I'm not sure why I would, but I can't think of a better example at the moment), then I would probably share it. If, however, I then wanted a field exactly the same on my News content type (i.e. one that references users), then I would create a new field. This means that my blog and news "sections" are independent of one another.
I haven't ever run any performance benchmarks or anything, this is jsut a personal preference that means if I bundle my site config up as a Feature using the Features module, there aren't any conflicts between my Blog and my News features.
On another note if it helps illustrate my point, I also tend to name my fields with a view to where they're being used wherever I can (e.g. field_blog_userref
or field_blog_header_image
)
EDIT
If you're concerned about making your CSS easier/harder, then even with seperate fields you can give them the same markup/CSS classes with the Fences module.
Fences is a an easy-to-use tool to specify an HTML element for each
field.
So you could have two different fields, but you can give them both the class .my-text-field
to make styling easier :-)