Obj vs blender file while saving assets
OBJ (along with other most formats) are interchange file formats, generally meant for cross application data transfer, like importing and exporting between software, not a reliable way to save data.

You should only use them if you plan on using your assets elsewhere in an application or software that can't directly read .blend files.

Saving your assets in a format other than .blend will invariably result in data loss. At the very least materials and textures, but in most cases also modifiers, rigging and any other Blender specific data, along with animations, constraints, simulations among others.

You also can't dynamically link data from objects and easily reuse it, once imported it becomes static local data, removing any benefits of shared libraries like an always up to date central file used across all projects, or automatic update propagation, especially useful in multi user environments.

OBJ should be used as an interchange file format, not a long term storage solution for a project or library file.