Are self intersecting meshes dirty from a 3D printing perspective?
Self intersecting meshes are considered dirty, yes. The reason you haven't had trouble before is probably that the software you were using was cleaning your mesh for you, behind the scenes.
Generally speaking, these meshes can be cleaned without too much trouble by software like netfabb (https://www.netfabb.com/) which has a nice free version that I use for basic cleaning of some of my meshes. A quick google on "netfabb free fix mesh" should turn up a tutorial or two.

If you're interested in learning more about an operation you can use to make this a single unified mesh, it's called a Boolean Union, and the blender project has a nice (open source, I think?) implementation of such: (https://www.blender.org/manual/modeling/modifiers/generate/booleans.html)