How to prevent graphics clipping through each other
I recommend using tubes to represent thick lines in 3D graphics. They look better because they are true 3D objects with circular cross-setions and not flat ribbons, which are how thick lines are drawn in 3D graphics.
Graphics3D[
{{Black, Sphere[{0, 0, 0}, 0.1]}, {Red, Tube[{{-1, 0, 0}, {1, 0, 0}}, .04]}},
PlotRange -> {{-1, 1}, {-1, 1}, {-1, 1}},
ImageSize -> Medium]
Update
This update is added to address a question asked by the OP in a comment to this question.
No, you can't use an InfiniteLine
as the spine of a tube. However, it not too hard to roll your own version (pun intended) of Tube
that I think will mimic an infinite tube well enough for your purposes.
Here is a sketch of how it might be done. For industrial use. the function, at minimum, would need to be rewritten with guards placed on its arguments.
directedLongTube[p_, v_, r_, k_: 100.] := Tube[{(p - k v), (p + k v)}, r]
where
$\qquad p\quad$point the tube is centered on
$\qquad v\quad$direction vector of the tube
$\qquad r\quad$radius of the tube
$\qquad k\quad$extension factor of the tube
$k$ should be large enough so the tube will extend outside the bounding box of the plot in both directions.
Example
SeedRandom[1]
With[
{center = RandomReal[2 {-1., 1.}, 3],
directions = RandomReal[{-1., 1.}, {10, 3}],
colors = Hue /@ Subdivide[9]},
Module[{tubes},
tubes =
MapThread[{#1, directedLongTube[center, #2, .25]} &, {colors, directions}];
Graphics3D[{{Gray, Sphere[{center}, 1]}, tubes},
PlotRange -> 5 {{-1, 1}, {-1, 1}, {-1, 1}},
Boxed -> False]]]