You can have your proposals : when you call a model, the loader call in directory models (see system/core/Loader.php), when you call a library, directory libraries in directory system or application directory is concerned, etc. There won't have a conflict.
If you try to call in controller named Users the model Users by this->load->model(..), you will be an error.
You can add a letter like c between your controller name or other if you want (that like you say).
About the questions of complete an array of different object or pass parameter, there had an error with your method because it is unsuitable.