Not all assets copied over when copying an entry from admin panel
Im hesitant to say that this is by design because iam not entirely sure what you mean. Instead i'll explain something i think is comparible that happend to us. We have an entry channel with entries which act as the companies of users on the website. When we saved a company profile in Dutch, fields such as the description or company info would not pull across. We fixed this by listening to the onSaveEntry event and simply pulling the fields across manually. This isnt a very pretty or portable way to do it - but this was an incredibly case and website specific feature - we only wanted entries in this website and even just in this section to have this 'copying' feature. From memory the script looked something like the below: 

One word of advise i would issue if of advice i would give is if you are working with other content editors is to listen to the cp.entries.edit.right-pane hook and build a small interface that allows them to select the locale and copy over the current locale to the new locale. The script below has one downside which is that it essentially sterilizes the localization function for craft for the affected entries - which in this projects case was crucial - but in yours probably isnt. 

Let me know if anything is unclear. One word of notice - if you are working with a relations field which is what a pdf should be. Relations should be copied over IF you are using something like 'Save as a new entry'. If this isnt happening you've probably found a bug. 

craft()-&gt;on('entries.saveEntry', function(Event $event) {
        $entry = $event-&gt;params['entry'];

        // Does the entry section equal our companies section channel? 
        if (craft()-&gt;isLocalized() &amp;&amp; $entry-&gt;sectionId == 2) {

                // What locales are there? 
                foreach (craft()-&gt;i18n-&gt;getSiteLocales() as $locale)
                {
                    // Is this a foreign locale
                    if ($locale != $entry-&gt;locale)
                    {
                        // Get an entry that belongs to this with a sep locale, setup a model and save it. 
                        $otherLocaleEntry = craft()-&gt;elements-&gt;getElementById($entry-&gt;id, ElementType::Entry, $locale-&gt;__toString());
                        if ($otherLocaleEntry)
                        {
                            $otherLocaleEntry-&gt;getContent()-&gt;myFieldsStuff = $entry-&gt;getContent()-&gt;myFieldsStuff;


                            craft()-&gt;entries-&gt;saveEntry($otherLocaleEntry);
                        }
                    }
                }
            }
        }
    });