Is there any downside to creating, for example, a structure, say a building from many objects and various textures? Like, create the roof, the walls, a pillar and combine those and export the model into my game engine? Or, for example, a pickaxe, created from different parts, so I can reuse those parts in other models.
I don't think this will be a problem anywhere. As long as you make sure the objects are properly parented to one another, or even better (at least inside Blender), to an empty, you should be fine. Your game engine will, of course, need to be able to deal with object parenting properly, but if it doesn't... you probably don't want to use it.
@metaphor_set raises a good point in his answer. You can check this Unity question where they discuss this; however, I still believe that reusing objects will lead to a better workflow. That said, you should really think (aka, benchmark) whether this could become a problem, and, if so, you could, before exporting or, possibly, before applying materials merge the various objects into one, to counter this problem.
It depends. There's a reason why most modelers try to use as few objects as possible. If you have two objects in a model you have also two materials — possibly with several textures, every material results in one draw call for DirectX/OpenGL.
If, however, you create one object that contains several submeshes and there is only one material (hint: texture atlas) you'll minimize that unnecessary overhead.