We try to be consistent with the unit handling in KeyShot. If this is not your experience we apologize and we would, of course, like to know of any bugs you may have found.
I will try to explain the intended behaviour of KeyShot scene units with respect to geometry and materials. The default scene in KeyShot (startup.bip) is unit-less. The intenteded workflow is to import your geometry and select the desired unit in the import dialog. Most file formats support some notion of unit, and this unit is taken over by KeyShot after import. That is, if you import a file in mm, the new unit in KeyShot will be in millimeters. Not all formats have consistent unit-handling, but we try to detect where possible.
If you import some geometry modelled in e.g. mm into a KeyShot scene in another unit (e.g. meters) the imported geometry should be scaled to match the unit in the scene you import into (meters in this case). If this is not the case, it is a bug. I just tried to import a cube modelled to 3 in in Solidworks into a Creo assembly modelled in mm and the cube came in at 76.2 mm as expected.
To see the size of your geometry, check the Scene Tree Properties tab - there should be a field that says "Size". It should display the size the bounding box of your geometry in world space with units. Note that this may be slightly different than what you experience in the modelling tool due to tesselation or rotations of the parts inside the model.
The KeyShot Edit-menu primitives are unitless and are handled specially (behaviour changed in KeyShot 7). They are, as Will stated, imported at 1/10th the size of the scene. This is in order to make them visible when working with large scenes and you need primitives at a convenient size for lights or a pivot point etc. It also has the peculiar consequence that importing a cube twice into an empty scene will result in two cubes of different sizes - one 1/10th of the first.
If KeyShot is unable to detect the unit in the file you import, there is typically an option in the import dialog where you can set how to interpret units in the file you try to import. This occurs for obj-import for example.
KeyShot 7 received some attention regarding units for materials. Before KeyShot 7, material parameters relating to distances in the scene were implicitly in scene units (whatever thet were). This made it hard to reuse materials across different scenes with different units.
In KeyShot 7, a 50 mm transparency distance for Translucent (or a Liquid or Glass etc) is in fact a 50 mm transparency distance - e.g. 5 cm in a scene with centimeters as a unit and about 1.97 inches if you happen to work in inches. The same applies to texture sizes when using a mapping supporting units (e.g. Box mapping).
If we return to the original example with the cubes above, it does look as if Solidworks, Maya and Rhino import correctly. The size of the Edit-menu cube will depend on when it was imported so it is not a useful reference. The only thing that deviates in behaviour from the behaviour described above is the Houdini 1m cube - why this should import like this (to 1 mm in size perhaps?) is not clear and it may be a bug or a problem with the file itself. Please use the Scene Tree Properties Size field to investigate the size.
Regarding the goemetry view grid size, please note that there is no units written. This is because it is a rough size based on the size of the environment - it is not in any specific unit! This is probably not ideal and it is perfectly understandable if this is a source of confusion.
Hope this clarifies a few things. As I wrote initially, we are always keen to hear of any bugs you may have found.
Please contact support if you have any further questions.
Søren