I have found the issue. I was pointing to the wrong version of gacutil.exe! I use a virtual machine I have been given and I was expecting it to have all the necessaries .Net versions and SDK but one version of the SDK was missing.
So, for example, when I try to locally gac a .Net 2.0 assembly using the gacutil.exe version of the .Net 1.1 SDK, I got the following error:
Microsoft (R) .NET Global Assembly Cache Utility. Version 1.1.4322.573
Copyright (C) Microsoft Corporation 1998-2002. All rights reserved.
Failure adding assembly to the cache: Unknown Error
The msbuild gacutil task nevertheless did not pick up the error and went through fine - making the msbuild target to succeed. I've had a quick look at the source code of gac.cs and it looks like it's because the gacutil.exe does not return an error code
when failing for an unknown error... Anyhow, I think that this case is probably quite rare as I should have looked if i had to correct version of the gacutil.exe first.
Thanks again for your help!