This is working as designed, but I agree it is not particularly helpful. You will find other threads on this going back a couple of years.
The only way to keep those objects when duplicating an app is to copy and paste them into an app in a users work stream. If you have a number of different users with objects you want to persist and keep in the main app you will need to change the owner of the duplicated app and each person will need to copy their own objects into a Base Sheet.
There are (apparently) ways of updating the PostgreSQL database to make community objects base ones, but I have not seen anyone say it is a good idea to try this.
Hope that helps,