Okay, here is a complete way to solve this issue. Once you understand it, it should make some sense. I will explain the behavior, then give the solution(s). Please understand everything here or you could risk loosing your photos.
On the iPhone, under Settings -> Photos & Camera there are two settings:
1. "iCloud Photo Library" - If this is on, then iCloud and iPhone will make an exact mirror of each other. If the photo is deleted in one, it is removed from the other. The iPhone and iCloud would be in perfect sync. This setting is designed for people who:
a. Want ONLY want this mirroring of their iCloud photos on their iPhone because they don't care about iPhoto OR
b. People who only have an iPhone and would like iCloud to be their backup because they have no OSX iPhoto.
2. "My Photo Stream" - If this is on, all NEW photos from the iPhone are automatically loaded to iCloud to be mirrored on all your devices/applications. This really only matters if "iCloud Photo Library" is off. If "iCloud Photo Library" is on, then all photos are mirrored regardless if they are new or old.
On OSX's iPhoto, in Preferences -> iCloud there are the exact same two settings:
1. "iCloud Photo Library" - If this is on, then iCloud and iPhoto will make an exact mirror of each other. If the photo is deleted in one, it is removed from the other. The iPhoto and iCloud would be in perfect sync. This setting is designed for people who:
a. Want ONLY want this mirroring of their iCloud photos on iPhoto because they don't care about the iPhone OR
b. People who only have OSX iPhoto and would like iCloud to be their backup because they have no iPhone.
2. "My Photo Stream" - If this is on, all NEW photos from iPhoto are automatically loaded to iCloud to be mirrored on all your devices/applications. This really only matters if "iCloud Photo Library" is off. If "iCloud Photo Library" is on, then all photos are mirrored regardless if they are new or old.
When your phone is plugged into your OSX, if iPhoto loads and starts importing, this is because you have the checkbox set for iPhoto to do your imports on that device. Note this setting...
Now, how to get all your new photos into iPhoto and keep a user defined subset of photos on your iPhone. This will require iTunes, so make sure this updated.
- In iPhoto, under Preferences -> iCloud, uncheck "iCloud Photo Library" and check "My Photo Stream". Then close the preference box. This will not remove any photos from iPhoto, but will stop iPhoto from synchronizing every photo in your library with iCloud. It will also allow iPhoto to pull down new photos, or share these photos with other devices if the image originated from iPhoto. Because you have your iPhone connected to iCloud, the photos will still be in iCloud.
- Plug the iPhone into your Mac OSX with iPhoto running. Make sure to do a full import of all photos on this device to iPhoto... this is critical, because we are going to remove all the iPhone photos. Don't worry, they will be on your iPhoto machine IF you import them all at this step. At this point they are also in iCloud because of the iPhone settings.
- Uncheck the box to have iPhoto load if this devices is plugged in. We are not using this feature but will be using iTunes.
- Backup your Mac OSX using TimeMachine, or manually copy the contents of your Picture folder to a backup disk. You should have backups occurring anyways, and if your photos mean anything, you should back them up. Internet backup solutions are also good. It doesn't matter how, backup your Mac before the next step.
- In the iPhone, under "Settings -> Photos & Camera", turn off "iCloud Photo Library" and turn on "My Photo Stream". At this point, if this is the only iDevice on your iCloud account, iCloud will start removing any photo from iCloud which is not new or shared. New/shared photos will remain in iCloud until all connected devices have pulled them down AND there is no iCloud sharing of the photo. You have been warned about backups in step 4. Click on Settings in the top right to make these changes go into effect.
- Now, if the iPhone is on internet WiFi, your iPhoto is running on internet WiFi, you could take a new picture and in a brief moment, depending on internet speed, you should see that new photo appear in the "My Photo Stream" on iPhoto. It took a little while for me, but if you are patient it should happen. YMMV. If this does not happen, verify that both devices are set correctly, and WiFi is on. You may need to verify your iCloud settings on both devices.
- Now, open up iTunes. For the first time you do this, you will want to have the iPhone connected to the Mac with a USB cable. The iPhone should come up as a device to manage under File -> Devices. On the "Summary" screen, you may want to turn on WiFi syncing, that is your choice and beyond the scope of this. However, the tab you are looking for is "Photo". Click the box to Sync Photos From and select your iPhoto library. You will want to switch from "All Photos" to "Selected Photos". You will see a variety of selections including certain Albums, favorites, or the Past X number of days/months/etc. Your choice. Then click Apply. Your iPhone will first remove all photos not on your selections, then synchronize new photos. This may take some time. For me, the first time, this took 8 hours. Don't worry if you have to stop it, you can resync later with iTunes and it will clean it up.
At this point, your iPhoto library will have all your photos, and your iPhone will have just those that you sync. All new photos will eventually go into iPhoto.
Remember, you will need iPhoto running on the internet and connected to iCloud for new "My Photo Stream" photos to appear in iPhoto.
Remember you will need iTunes running on the same WiFi as your iPhone (or use the USB cable) to sync your selected photos back to your iPhone.
I hope that helps.