Again with the caveat that I am not a lawyer, and suspecting that the Oracle vs Google case demonstrates that lawyers haven't really got to grips with this stuff.
For example if I use some methods from a translated C header that use Static-loading of libraries (external 'thelib') and change it into Dynamic-loading (loadlibrary('thelib') what is the status?
I'd have thought that the overriding concern is the license under which you have been provided with the library- whether it be statically or dynamically linked- plus local case history on reverse engineering and clean-room regeneration via a specification.
If you have a declaration (e.g. Pascal interface section) which includes material which is recognisably a transcript of something subject to copyright and have not been licensed to use it, then you are at fault irrespective of the languages involved.
If you have reverse-engineered an interface in line with local convention (statute and precedent) which describes DLL-style numbered entry points, or a jump table at an absolute location in memory, and this contains absolutely no recognisable text, then I cannot see how you can be faulted.
If you have transcribed an interface which described named entry points, then you would possibly be liable for your use of identifiers such as open() or snd_pcm_open(). A court might or might not accept a defence of "it's obvious" or "it's the only way of doing it": those would invalidate a patent, but not necessarily copyright.
A court would probably apply the same reasoning to a data structure with named fields, however unreasonable this might appear to somebody "skilled in the art".
The libasound binary is undoubtedly subject to copyright, and to the copyright holders' chosen license. The .h files that accompany it are annotated as being subject to the LGPL. Whether a (Pascal) transcript of the .h files is also subject to the LGPL probably depends (a) on whether comments etc. have been carried over and (b) on whether some arcane interpretation of the (L)GPL allows a header file to be read with the intention of generating a clean-room specification.
I'm not sure that makes things any clearer, but it's the situation as I see it.
Because I changed the source, what about the license, is it a violation, must I notify somebody?
If somebody had asserted copyright over a file which you changed and supplied it subject to a license which says you must tell them, then yes.
I speculate that you don't have to tell anybody if you generate a cleanroom copy, subject to the (L)GPL being interpreted to allow this or your demonstration that you've done it from a binary without reference to the source.
It's a mess. It's far easier- at least with scratch-written software- to explicitly designate interface files as a statement of fact hence not being copyrightable, with the caveat that if local laws prohibit this that they're in the public domain. At the very least, that avoids risk that the (L)GPL be weakened by a challenge.
Mixing declaration and implementation, including C/C++ macros, in a single file is asking for trouble.
MarkMLl