Joining 3D lines is a pretty dangerous thing to do - Project Cleanup was designed to fix imported 2D CAD linework. If the data is 3D and the two end points are not exactly the same elevation we don't join them - the options would be
1) Move one end to the other - probably not a good answer
2) Move the other end to the other - probably not a good answer
3) Move both ends to an average location - probably not a good answer
4) Connect with a vertical line between the ends - probably not a good answer
This is why we don't join them if they are 3D and mismatched
When the lines are touching at their end points but are drawn in opposite directions, we do reverse the lines to join the lines if they are touching. Where the end points do not touch, project cleanup does try to join the lines but it does "edit the lines" also to make a line that has a continuous forward direction - i.e.it does a degree of trimming and extending and clipping of lines to try and make a line that somewhat fits the data within the connection tolerance.
We all know how bad source CAD data can be and Source CAD provided as Vector PDF can be worse - while the command tries to fit something to the source, it will never always work - however if you can provide specific examples where you expect something to work but doesn't, please provide the example data and the settings that you are using in Project Cleanup and we can take a look - in my experience the problem is often with the data not the command because it would be impossible to build a tool that can cope with all of the variances that can happen in CAD files.
One other thing that causes it to fail is multiple lines on top of each other, it is extremely common to have two or more lines that follow the same path that sit partially or fully on top of each other - unless you clean that up first, the join function will not work fully. The challenge with this is that the lines have to be clean before the Join will actually work - sometimes I have to run Cleanup two or more times to clean out all of the Duplicate Lines or Overlapping line loops - running it just once does not get them all and this will often be the issue.
As you pointed out UCS is a more and more common issue also - if some lines (typically the Arcs) have UCS then they will not join to straight lines that do not have UCS. Use the Convert to Linestring TML to remove the UCS before running Project Cleanup.
Hope that this helps
Alan